<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="fusiontables_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.style.html">style</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(tableId, styleId)</a></code></p>
<p class="firstline">Deletes a style.</p>
<p class="toc_element">
  <code><a href="#get">get(tableId, styleId)</a></code></p>
<p class="firstline">Gets a specific style.</p>
<p class="toc_element">
  <code><a href="#insert">insert(tableId, body)</a></code></p>
<p class="firstline">Adds a new style for the table.</p>
<p class="toc_element">
  <code><a href="#list">list(tableId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Retrieves a list of styles.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(tableId, styleId, body)</a></code></p>
<p class="firstline">Updates an existing style. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(tableId, styleId, body)</a></code></p>
<p class="firstline">Updates an existing style.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(tableId, styleId)</code>
  <pre>Deletes a style.

Args:
  tableId: string, Table from which the style is being deleted (required)
  styleId: integer, Identifier (within a table) for the style being deleted (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(tableId, styleId)</code>
  <pre>Gets a specific style.

Args:
  tableId: string, Table to which the requested style belongs (required)
  styleId: integer, Identifier (integer) for a specific style in a table (required)

Returns:
  An object of the form:

    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
      },
      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
      "name": "A String", # Optional name for the style setting.
      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeWeight": 42, # Width of the polyon border in pixels.
        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
      },
      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
        "strokeWeight": 42, # Width of the line in pixels.
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeColor": "A String", # Color of the line in #RRGGBB format.
        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
      },
      "tableId": "A String", # Identifier for the table.
      "styleId": 42, # Identifier for the style setting (unique only within tables).
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(tableId, body)</code>
  <pre>Adds a new style for the table.

Args:
  tableId: string, Table for which a new style is being added (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
    },
    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
    "name": "A String", # Optional name for the style setting.
    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeWeight": 42, # Width of the polyon border in pixels.
      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
    },
    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
      "strokeWeight": 42, # Width of the line in pixels.
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeColor": "A String", # Color of the line in #RRGGBB format.
      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
    },
    "tableId": "A String", # Identifier for the table.
    "styleId": 42, # Identifier for the style setting (unique only within tables).
  }


Returns:
  An object of the form:

    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
      },
      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
      "name": "A String", # Optional name for the style setting.
      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeWeight": 42, # Width of the polyon border in pixels.
        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
      },
      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
        "strokeWeight": 42, # Width of the line in pixels.
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeColor": "A String", # Color of the line in #RRGGBB format.
        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
      },
      "tableId": "A String", # Identifier for the table.
      "styleId": 42, # Identifier for the style setting (unique only within tables).
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(tableId, pageToken=None, maxResults=None)</code>
  <pre>Retrieves a list of styles.

Args:
  tableId: string, Table whose styles are being listed (required)
  pageToken: string, Continuation token specifying which result page to return. Optional.
  maxResults: integer, Maximum number of styles to return. Optional. Default is 5.

Returns:
  An object of the form:

    { # Represents a list of styles for a given table.
    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more pages left.
    "items": [ # All requested style settings.
      { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
          "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
            "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
            "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
          },
          "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
          "name": "A String", # Optional name for the style setting.
          "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
            "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
            "strokeWeight": 42, # Width of the polyon border in pixels.
            "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
            "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
            "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
            "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
            "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
            "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
          },
          "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
            "strokeWeight": 42, # Width of the line in pixels.
            "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
            "strokeColor": "A String", # Color of the line in #RRGGBB format.
            "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
            "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
              "gradient": { # Gradient function that interpolates a range of colors based on column value.
                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
                "colors": [ # Array with two or more colors.
                  {
                    "color": "A String", # Color in #RRGGBB format.
                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  },
                ],
                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
              },
              "columnName": "A String", # Name of the column whose value is used in the style.
              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
                  "weight": 42, # Width of a line (in pixels).
                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
                  "icon": "A String", # Icon name used for a point.
                },
              ],
              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
            },
          },
          "tableId": "A String", # Identifier for the table.
          "styleId": 42, # Identifier for the style setting (unique only within tables).
        },
    ],
    "kind": "fusiontables#styleSettingList", # Type name: in this case, a list of style settings.
    "totalItems": 42, # Total number of styles for the table.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(tableId, styleId, body)</code>
  <pre>Updates an existing style. This method supports patch semantics.

Args:
  tableId: string, Table whose style is being updated. (required)
  styleId: integer, Identifier (within a table) for the style being updated. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
    },
    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
    "name": "A String", # Optional name for the style setting.
    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeWeight": 42, # Width of the polyon border in pixels.
      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
    },
    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
      "strokeWeight": 42, # Width of the line in pixels.
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeColor": "A String", # Color of the line in #RRGGBB format.
      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
    },
    "tableId": "A String", # Identifier for the table.
    "styleId": 42, # Identifier for the style setting (unique only within tables).
  }


Returns:
  An object of the form:

    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
      },
      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
      "name": "A String", # Optional name for the style setting.
      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeWeight": 42, # Width of the polyon border in pixels.
        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
      },
      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
        "strokeWeight": 42, # Width of the line in pixels.
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeColor": "A String", # Color of the line in #RRGGBB format.
        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
      },
      "tableId": "A String", # Identifier for the table.
      "styleId": 42, # Identifier for the style setting (unique only within tables).
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(tableId, styleId, body)</code>
  <pre>Updates an existing style.

Args:
  tableId: string, Table whose style is being updated. (required)
  styleId: integer, Identifier (within a table) for the style being updated. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
    },
    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
    "name": "A String", # Optional name for the style setting.
    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeWeight": 42, # Width of the polyon border in pixels.
      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
    },
    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
      "strokeWeight": 42, # Width of the line in pixels.
      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
      "strokeColor": "A String", # Color of the line in #RRGGBB format.
      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
        "gradient": { # Gradient function that interpolates a range of colors based on column value.
          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
          "colors": [ # Array with two or more colors.
            {
              "color": "A String", # Color in #RRGGBB format.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            },
          ],
          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
        },
        "columnName": "A String", # Name of the column whose value is used in the style.
        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
            "weight": 42, # Width of a line (in pixels).
            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
            "icon": "A String", # Icon name used for a point.
          },
        ],
        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
      },
    },
    "tableId": "A String", # Identifier for the table.
    "styleId": 42, # Identifier for the style setting (unique only within tables).
  }


Returns:
  An object of the form:

    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
      },
      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
      "name": "A String", # Optional name for the style setting.
      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeWeight": 42, # Width of the polyon border in pixels.
        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
      },
      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
        "strokeWeight": 42, # Width of the line in pixels.
        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
        "strokeColor": "A String", # Color of the line in #RRGGBB format.
        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
          "gradient": { # Gradient function that interpolates a range of colors based on column value.
            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
            "colors": [ # Array with two or more colors.
              {
                "color": "A String", # Color in #RRGGBB format.
                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              },
            ],
            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
          },
          "columnName": "A String", # Name of the column whose value is used in the style.
          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
              "weight": 42, # Width of a line (in pixels).
              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
              "icon": "A String", # Icon name used for a point.
            },
          ],
          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
        },
      },
      "tableId": "A String", # Identifier for the table.
      "styleId": 42, # Identifier for the style setting (unique only within tables).
    }</pre>
</div>

</body></html>