Regen docs (#373)

diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index b38c17f..5d1b646 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -126,11 +126,6 @@
         # Meaningful only if include_spreadsheet_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_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.
       { # A single kind of update to apply to a spreadsheet.
         "duplicateFilterView": { # Duplicates a particular filter view. # Duplicates a filter view.
@@ -198,9 +193,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.
@@ -215,99 +210,6 @@
               # 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 will be parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=`).
-                    },
-                  ],
-                  "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.
@@ -668,7 +570,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -939,140 +860,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -1207,27 +994,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -1908,10 +1810,890 @@
             "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.
+            "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.
+                "right": 42, # The right padding of the cell.
+                "left": 42, # The left 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. Here are some examples:
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper 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.
+              "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. Here are some examples:
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper 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.
+              },
+              "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.
+              "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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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.
+                },
+              },
+              "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.
+              "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.
@@ -2469,7 +3251,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -2740,140 +3541,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -3008,27 +3675,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -3318,7 +4100,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -3589,140 +4390,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -3857,27 +4524,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -4262,9 +5044,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.
@@ -4548,6 +5330,8 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                     "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.
@@ -4687,8 +5471,6 @@
                       "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.
                   },
                 ],
               },
@@ -5056,7 +5838,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -5327,140 +6128,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -5595,27 +6262,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -6599,7 +7381,26 @@
                 "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.
+              "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.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -6870,140 +7671,6 @@
                       # 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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
@@ -7138,27 +7805,142 @@
                       # 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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 |
-              },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
             },
             "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                 #
@@ -7448,7 +8230,26 @@
                 "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.
+              "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.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -7719,140 +8520,6 @@
                       # 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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
@@ -7987,27 +8654,142 @@
                       # 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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 |
-              },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
             },
             "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                 #
@@ -8370,885 +9152,45 @@
             },
           },
         },
-        "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.
-            "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.
-                "right": 42, # The right padding of the cell.
-                "left": 42, # The left 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. Here are some examples:
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper 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.
-              "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. Here are some examples:
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper 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.
-              "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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 |
-              },
-            },
-            "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.
-            },
-            "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`.
+        "insertRange": { # Inserts cells into a range, shifting the existing cells over or down. # Inserts new cells in a sheet, shifting the existing cells.
+          "range": { # A range on a sheet. # The range to insert new cells into.
+              # 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 which will be shifted when inserting cells.
+              # If ROWS, existing cells will be shifted down.
+              # If COLUMNS, existing cells will be shifted right.
         },
         "updateCells": { # Updates all cells in a range with new data. # Updates many cells at once.
           "start": { # A coordinate in a sheet. # The coordinate to start writing data at.
@@ -9847,7 +9789,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -10118,140 +10079,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -10386,27 +10213,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -10696,7 +10638,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -10967,140 +10928,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -11235,27 +11062,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -11539,8 +11481,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.
@@ -12854,48 +12796,46 @@
         "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.
+        "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
@@ -13179,6 +13119,8 @@
                     # A chart may not have more than one axis per
                     # axis position.
                   "position": "A String", # The position of this axis.
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                   "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.
@@ -13318,8 +13260,6 @@
                     "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.
                 },
               ],
             },
@@ -13350,46 +13290,48 @@
               # (the zero-based index of row 5).
               # The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
         },
-        "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.
+        "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.
           },
-          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
-              # CUSTOM.
-          "delimiterType": "A String", # The delimiter type to use.
         },
         "addBanding": { # Adds a new banded range to the spreadsheet. # Adds a new banded range
           "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range to add. The bandedRangeId
@@ -14557,45 +14499,98 @@
         "deleteProtectedRange": { # Deletes the protected range with the given ID. # Deletes a protected range.
           "protectedRangeId": 42, # The ID of the protected range to delete.
         },
-        "insertRange": { # Inserts cells into a range, shifting the existing cells over or down. # Inserts new cells in a sheet, shifting the existing cells.
-          "range": { # A range on a sheet. # The range to insert new cells into.
-              # 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.
+        "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 will be parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=`).
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
           },
-          "shiftDimension": "A String", # The dimension which will be shifted when inserting cells.
-              # If ROWS, existing cells will be shifted down.
-              # If COLUMNS, existing cells will be shifted right.
         },
         "deleteSheet": { # Deletes the requested sheet. # Deletes a sheet.
           "sheetId": 42, # The ID of the sheet to delete.
@@ -15916,6 +15911,11 @@
         },
       },
     ],
+    "responseIncludeGridData": True or False, # True if grid data should be returned. Meaningful only if
+        # if include_spreadsheet_response is 'true'.
+        # This parameter is ignored if a field mask was set in the request.
+    "includeSpreadsheetInResponse": True or False, # Determines if the update response should include the spreadsheet
+        # resource.
   }
 
   x__xgafv: string, V1 error format.
@@ -15984,7 +15984,6 @@
             # * 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.
         "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.
@@ -16274,7 +16273,26 @@
             "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.
+          "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.
           "borders": { # The borders of the cell. # The borders of the cell.
             "top": { # A border along a cell. # The top border of the cell.
@@ -16545,140 +16563,6 @@
                   # 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. Here are some examples:
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper 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
@@ -16813,28 +16697,144 @@
                   # 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. Here are some examples:
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper 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 |
-          },
+          "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.
@@ -17208,7 +17208,26 @@
                     "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.
+                  "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.
                   "borders": { # The borders of the cell. # The borders of the cell.
                     "top": { # A border along a cell. # The top border of the cell.
@@ -17479,140 +17498,6 @@
                           # 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. Here are some examples:
-                          #
-                          # Example (Java):
-                          #
-                          #      import com.google.type.Color;
-                          #
-                          #      // ...
-                          #      public static java.awt.Color fromProto(Color protocolor) {
-                          #        float alpha = protocolor.hasAlpha()
-                          #            ? protocolor.getAlpha().getValue()
-                          #            : 1.0;
-                          #
-                          #        return new java.awt.Color(
-                          #            protocolor.getRed(),
-                          #            protocolor.getGreen(),
-                          #            protocolor.getBlue(),
-                          #            alpha);
-                          #      }
-                          #
-                          #      public static Color toProto(java.awt.Color color) {
-                          #        float red = (float) color.getRed();
-                          #        float green = (float) color.getGreen();
-                          #        float blue = (float) color.getBlue();
-                          #        float denominator = 255.0;
-                          #        Color.Builder resultBuilder =
-                          #            Color
-                          #                .newBuilder()
-                          #                .setRed(red / denominator)
-                          #                .setGreen(green / denominator)
-                          #                .setBlue(blue / denominator);
-                          #        int alpha = color.getAlpha();
-                          #        if (alpha != 255) {
-                          #          result.setAlpha(
-                          #              FloatValue
-                          #                  .newBuilder()
-                          #                  .setValue(((float) alpha) / denominator)
-                          #                  .build());
-                          #        }
-                          #        return resultBuilder.build();
-                          #      }
-                          #      // ...
-                          #
-                          # Example (iOS / Obj-C):
-                          #
-                          #      // ...
-                          #      static UIColor* fromProto(Color* protocolor) {
-                          #         float red = [protocolor red];
-                          #         float green = [protocolor green];
-                          #         float blue = [protocolor blue];
-                          #         FloatValue* alpha_wrapper = [protocolor alpha];
-                          #         float alpha = 1.0;
-                          #         if (alpha_wrapper != nil) {
-                          #           alpha = [alpha_wrapper 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
@@ -17747,27 +17632,142 @@
                           # 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. Here are some examples:
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper 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 |
-                  },
+                  "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.
@@ -19440,9 +19440,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.
@@ -19726,6 +19726,8 @@
                         # A chart may not have more than one axis per
                         # axis position.
                       "position": "A String", # The position of this axis.
+                      "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                          # from headers of the data.
                       "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.
@@ -19865,8 +19867,6 @@
                         "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.
                     },
                   ],
                 },
@@ -20088,6 +20088,17 @@
               # while the second one will have `startRow 14` (zero-based row 15),
               # and `startColumn 3` (zero-based column D).
             { # Data in the grid, as well as metadata about the dimensions.
+              "startRow": 42, # The first row this GridData refers to, zero-based.
+              "startColumn": 42, # The first column this GridData refers to, zero-based.
+              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                  # in start_column.
+                { # Properties about a dimension.
+                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                      # This field is read-only.
+                },
+              ],
               "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                   # in start_row.
                 { # Properties about a dimension.
@@ -20097,8 +20108,6 @@
                       # This field is read-only.
                 },
               ],
-              "startRow": 42, # The first row this GridData refers to, zero-based.
-              "startColumn": 42, # The first column this GridData refers to, zero-based.
               "rowData": [ # The data in the grid, one entry per row,
                   # starting with the row in startRow.
                   # The values in RowData will correspond to columns starting
@@ -20652,7 +20661,26 @@
                           "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.
+                        "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.
                         "borders": { # The borders of the cell. # The borders of the cell.
                           "top": { # A border along a cell. # The top border of the cell.
@@ -20923,140 +20951,6 @@
                                 # 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. Here are some examples:
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper 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
@@ -21191,27 +21085,142 @@
                                 # 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. Here are some examples:
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper 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 |
-                        },
+                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       },
                       "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                           #
@@ -21501,7 +21510,26 @@
                           "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.
+                        "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.
                         "borders": { # The borders of the cell. # The borders of the cell.
                           "top": { # A border along a cell. # The top border of the cell.
@@ -21772,140 +21800,6 @@
                                 # 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. Here are some examples:
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper 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
@@ -22040,27 +21934,142 @@
                                 # 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. Here are some examples:
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper 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 |
-                        },
+                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       },
                       "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                           #
@@ -22252,15 +22261,6 @@
                   ],
                 },
               ],
-              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                  # in start_column.
-                { # Properties about a dimension.
-                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                      # This field is read-only.
-                },
-              ],
             },
           ],
           "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -22693,9 +22693,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.
@@ -22717,9 +22717,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.
@@ -23003,6 +23003,8 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                     "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.
@@ -23142,8 +23144,6 @@
                       "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.
                   },
                 ],
               },
@@ -23154,7 +23154,6 @@
         "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 will be formatted if the condition is true.
@@ -23513,7 +23512,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -23784,140 +23802,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -24052,27 +23936,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -24492,6 +24491,7 @@
               },
             },
           },
+          "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 will be formatted if the condition is true.
@@ -24850,7 +24850,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -25121,140 +25140,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -25389,27 +25274,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -26512,7 +26512,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -26783,140 +26802,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -27051,27 +26936,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -28771,7 +28771,6 @@
         # * 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.
     "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.
@@ -29061,7 +29060,26 @@
         "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.
+      "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.
       "borders": { # The borders of the cell. # The borders of the cell.
         "top": { # A border along a cell. # The top border of the cell.
@@ -29332,140 +29350,6 @@
               # 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. Here are some examples:
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper 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
@@ -29600,28 +29484,144 @@
               # 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. Here are some examples:
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper 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 |
-      },
+      "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.
@@ -29995,7 +29995,26 @@
                 "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.
+              "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.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -30266,140 +30285,6 @@
                       # 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. Here are some examples:
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper 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
@@ -30534,27 +30419,142 @@
                       # 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. Here are some examples:
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper 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 |
-              },
+              "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.
@@ -32227,9 +32227,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.
@@ -32513,6 +32513,8 @@
                     # A chart may not have more than one axis per
                     # axis position.
                   "position": "A String", # The position of this axis.
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                   "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.
@@ -32652,8 +32654,6 @@
                     "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.
                 },
               ],
             },
@@ -32875,6 +32875,17 @@
           # while the second one will have `startRow 14` (zero-based row 15),
           # and `startColumn 3` (zero-based column D).
         { # Data in the grid, as well as metadata about the dimensions.
+          "startRow": 42, # The first row this GridData refers to, zero-based.
+          "startColumn": 42, # The first column this GridData refers to, zero-based.
+          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+              # in start_column.
+            { # Properties about a dimension.
+              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+              "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                  # This field is read-only.
+            },
+          ],
           "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
               # in start_row.
             { # Properties about a dimension.
@@ -32884,8 +32895,6 @@
                   # This field is read-only.
             },
           ],
-          "startRow": 42, # The first row this GridData refers to, zero-based.
-          "startColumn": 42, # The first column this GridData refers to, zero-based.
           "rowData": [ # The data in the grid, one entry per row,
               # starting with the row in startRow.
               # The values in RowData will correspond to columns starting
@@ -33439,7 +33448,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -33710,140 +33738,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -33978,27 +33872,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -34288,7 +34297,26 @@
                       "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.
+                    "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.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -34559,140 +34587,6 @@
                             # 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. Here are some examples:
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper 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
@@ -34827,27 +34721,142 @@
                             # 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. Here are some examples:
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper 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 |
-                    },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -35039,15 +35048,6 @@
               ],
             },
           ],
-          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-              # in start_column.
-            { # Properties about a dimension.
-              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-              "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                  # This field is read-only.
-            },
-          ],
         },
       ],
       "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -35277,7 +35277,6 @@
           # * 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.
       "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.
@@ -35567,7 +35566,26 @@
           "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.
+        "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.
         "borders": { # The borders of the cell. # The borders of the cell.
           "top": { # A border along a cell. # The top border of the cell.
@@ -35838,140 +35856,6 @@
                 # 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. Here are some examples:
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper 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
@@ -36106,28 +35990,144 @@
                 # 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. Here are some examples:
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper 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 |
-        },
+        "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.
@@ -36501,7 +36501,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -36772,140 +36791,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -37040,27 +36925,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -38733,9 +38733,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.
@@ -39019,6 +39019,8 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                     "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.
@@ -39158,8 +39160,6 @@
                       "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.
                   },
                 ],
               },
@@ -39381,6 +39381,17 @@
             # while the second one will have `startRow 14` (zero-based row 15),
             # and `startColumn 3` (zero-based column D).
           { # Data in the grid, as well as metadata about the dimensions.
+            "startRow": 42, # The first row this GridData refers to, zero-based.
+            "startColumn": 42, # The first column this GridData refers to, zero-based.
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
             "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                 # in start_row.
               { # Properties about a dimension.
@@ -39390,8 +39401,6 @@
                     # This field is read-only.
               },
             ],
-            "startRow": 42, # The first row this GridData refers to, zero-based.
-            "startColumn": 42, # The first column this GridData refers to, zero-based.
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -39945,7 +39954,26 @@
                         "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.
+                      "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.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -40216,140 +40244,6 @@
                               # 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. Here are some examples:
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper 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
@@ -40484,27 +40378,142 @@
                               # 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. Here are some examples:
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper 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 |
-                      },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     },
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
@@ -40794,7 +40803,26 @@
                         "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.
+                      "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.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -41065,140 +41093,6 @@
                               # 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. Here are some examples:
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper 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
@@ -41333,27 +41227,142 @@
                               # 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. Here are some examples:
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper 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 |
-                      },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     },
                     "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                         #
@@ -41545,15 +41554,6 @@
                 ],
               },
             ],
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -41813,7 +41813,6 @@
           # * 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.
       "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.
@@ -42103,7 +42102,26 @@
           "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.
+        "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.
         "borders": { # The borders of the cell. # The borders of the cell.
           "top": { # A border along a cell. # The top border of the cell.
@@ -42374,140 +42392,6 @@
                 # 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. Here are some examples:
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper 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
@@ -42642,28 +42526,144 @@
                 # 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. Here are some examples:
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper 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 |
-        },
+        "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.
@@ -43037,7 +43037,26 @@
                   "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.
+                "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.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -43308,140 +43327,6 @@
                         # 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. Here are some examples:
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper 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
@@ -43576,27 +43461,142 @@
                         # 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. Here are some examples:
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper 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 |
-                },
+                "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.
@@ -45269,9 +45269,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.
@@ -45555,6 +45555,8 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                     "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.
@@ -45694,8 +45696,6 @@
                       "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.
                   },
                 ],
               },
@@ -45917,6 +45917,17 @@
             # while the second one will have `startRow 14` (zero-based row 15),
             # and `startColumn 3` (zero-based column D).
           { # Data in the grid, as well as metadata about the dimensions.
+            "startRow": 42, # The first row this GridData refers to, zero-based.
+            "startColumn": 42, # The first column this GridData refers to, zero-based.
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
             "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                 # in start_row.
               { # Properties about a dimension.
@@ -45926,8 +45937,6 @@
                     # This field is read-only.
               },
             ],
-            "startRow": 42, # The first row this GridData refers to, zero-based.
-            "startColumn": 42, # The first column this GridData refers to, zero-based.
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -46481,7 +46490,26 @@
                         "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.
+                      "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.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -46752,140 +46780,6 @@
                               # 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. Here are some examples:
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper 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
@@ -47020,27 +46914,142 @@
                               # 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. Here are some examples:
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper 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 |
-                      },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     },
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
@@ -47330,7 +47339,26 @@
                         "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.
+                      "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.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -47601,140 +47629,6 @@
                               # 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. Here are some examples:
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper 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
@@ -47869,27 +47763,142 @@
                               # 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. Here are some examples:
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper 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 |
-                      },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     },
                     "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                         #
@@ -48081,15 +48090,6 @@
                 ],
               },
             ],
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.