-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Fusion Tables SDK.
--   
--   API for working with Fusion Tables data.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v2</tt> of the API.
@package gogol-fusiontables
@version 0.3.0


module Network.Google.FusionTables.Types

-- | Default request referring to version <tt>v2</tt> of the Fusion Tables
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
fusionTablesService :: ServiceConfig

-- | View your Fusion Tables
fusionTablesReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/fusiontables.readonly"]

-- | Manage your Fusion Tables
fusionTablesScope :: Proxy '["https://www.googleapis.com/auth/fusiontables"]

-- | Represents a list of columns in a table.
--   
--   <i>See:</i> <a>columnList</a> smart constructor.
data ColumnList

-- | Creates a value of <a>ColumnList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clTotalItems</a></li>
--   <li><a>clNextPageToken</a></li>
--   <li><a>clKind</a></li>
--   <li><a>clItems</a></li>
--   </ul>
columnList :: ColumnList

-- | Total number of columns for the table.
clTotalItems :: Lens' ColumnList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
clNextPageToken :: Lens' ColumnList (Maybe Text)

-- | The kind of item this is. For a column list, this is always
--   fusiontables#columnList.
clKind :: Lens' ColumnList Text

-- | List of all requested columns.
clItems :: Lens' ColumnList [Column]

-- | Represents a list of tables.
--   
--   <i>See:</i> <a>tableList</a> smart constructor.
data TableList

-- | Creates a value of <a>TableList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlNextPageToken</a></li>
--   <li><a>tlKind</a></li>
--   <li><a>tlItems</a></li>
--   </ul>
tableList :: TableList

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
tlNextPageToken :: Lens' TableList (Maybe Text)

-- | The kind of item this is. For table list, this is always
--   fusiontables#tableList.
tlKind :: Lens' TableList Text

-- | List of all requested tables.
tlItems :: Lens' TableList [Table]

-- | Represents a StyleFunction within a StyleSetting
--   
--   <i>See:</i> <a>styleFunction</a> smart constructor.
data StyleFunction

-- | Creates a value of <a>StyleFunction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfBuckets</a></li>
--   <li><a>sfKind</a></li>
--   <li><a>sfGradient</a></li>
--   <li><a>sfColumnName</a></li>
--   </ul>
styleFunction :: StyleFunction

-- | Bucket function that assigns a style based on the range a column value
--   falls into.
sfBuckets :: Lens' StyleFunction [Bucket]

-- | 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.
sfKind :: Lens' StyleFunction (Maybe Text)

-- | Gradient function that interpolates a range of colors based on column
--   value.
sfGradient :: Lens' StyleFunction (Maybe StyleFunctionGradient)

-- | Name of the column whose value is used in the style.
sfColumnName :: Lens' StyleFunction (Maybe Text)

-- | Identifier of the base column. If present, this column is derived from
--   the specified base column.
--   
--   <i>See:</i> <a>columnBaseColumn</a> smart constructor.
data ColumnBaseColumn

-- | Creates a value of <a>ColumnBaseColumn</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbcTableIndex</a></li>
--   <li><a>cbcColumnId</a></li>
--   </ul>
columnBaseColumn :: ColumnBaseColumn

-- | Offset to the entry in the list of base tables in the table
--   definition.
cbcTableIndex :: Lens' ColumnBaseColumn (Maybe Int32)

-- | The id of the column in the base table from which this column is
--   derived.
cbcColumnId :: Lens' ColumnBaseColumn (Maybe Int32)

-- | Represents a response to a SQL statement.
--   
--   <i>See:</i> <a>sQLresponse</a> smart constructor.
data SQLresponse

-- | Creates a value of <a>SQLresponse</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sqlKind</a></li>
--   <li><a>sqlRows</a></li>
--   <li><a>sqlColumns</a></li>
--   </ul>
sQLresponse :: SQLresponse

-- | The kind of item this is. For responses to SQL queries, this is always
--   fusiontables#sqlresponse.
sqlKind :: Lens' SQLresponse Text

-- | The rows in the table. For each cell we print out whatever cell value
--   (e.g., numeric, string) exists. Thus it is important that each cell
--   contains only one value.
sqlRows :: Lens' SQLresponse [[JSONValue]]

-- | Columns in the table.
sqlColumns :: Lens' SQLresponse [Text]
data StyleFunctionGradientColorsItem

-- | Creates a value of <a>StyleFunctionGradientColorsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfgciColor</a></li>
--   <li><a>sfgciOpacity</a></li>
--   </ul>
styleFunctionGradientColorsItem :: StyleFunctionGradientColorsItem

-- | Color in #RRGGBB format.
sfgciColor :: Lens' StyleFunctionGradientColorsItem (Maybe Text)

-- | Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
sfgciOpacity :: Lens' StyleFunctionGradientColorsItem (Maybe Double)

-- | Represents a list of styles for a given table.
--   
--   <i>See:</i> <a>styleSettingList</a> smart constructor.
data StyleSettingList

-- | Creates a value of <a>StyleSettingList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sslTotalItems</a></li>
--   <li><a>sslNextPageToken</a></li>
--   <li><a>sslKind</a></li>
--   <li><a>sslItems</a></li>
--   </ul>
styleSettingList :: StyleSettingList

-- | Total number of styles for the table.
sslTotalItems :: Lens' StyleSettingList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more styles left.
sslNextPageToken :: Lens' StyleSettingList (Maybe Text)

-- | The kind of item this is. For a style list, this is always
--   fusiontables#styleSettingList .
sslKind :: Lens' StyleSettingList Text

-- | All requested style settings.
sslItems :: Lens' StyleSettingList [StyleSetting]

-- | Specifies the minimum and maximum values, the color, opacity, icon and
--   weight of a bucket within a StyleSetting.
--   
--   <i>See:</i> <a>bucket</a> smart constructor.
data Bucket

-- | Creates a value of <a>Bucket</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bMax</a></li>
--   <li><a>bColor</a></li>
--   <li><a>bWeight</a></li>
--   <li><a>bIcon</a></li>
--   <li><a>bOpacity</a></li>
--   <li><a>bMin</a></li>
--   </ul>
bucket :: Bucket

-- | Maximum value in the selected column for a row to be styled according
--   to the bucket color, opacity, icon, or weight.
bMax :: Lens' Bucket (Maybe Double)

-- | Color of line or the interior of a polygon in #RRGGBB format.
bColor :: Lens' Bucket (Maybe Text)

-- | Width of a line (in pixels).
bWeight :: Lens' Bucket (Maybe Int32)

-- | Icon name used for a point.
bIcon :: Lens' Bucket (Maybe Text)

-- | Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
bOpacity :: Lens' Bucket (Maybe Double)

-- | Minimum value in the selected column for a row to be styled according
--   to the bucket color, opacity, icon, or weight.
bMin :: Lens' Bucket (Maybe Double)

-- | Represents a line geometry.
--   
--   <i>See:</i> <a>line</a> smart constructor.
data Line

-- | Creates a value of <a>Line</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lCoordinates</a></li>
--   <li><a>lType</a></li>
--   </ul>
line :: Line

-- | The coordinates that define the line.
lCoordinates :: Lens' Line [[Double]]

-- | Type: A line geometry.
lType :: Lens' Line Text

-- | Represents a complete StyleSettings object. The primary key is a
--   combination of the tableId and a styleId.
--   
--   <i>See:</i> <a>styleSetting</a> smart constructor.
data StyleSetting

-- | Creates a value of <a>StyleSetting</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssPolylineOptions</a></li>
--   <li><a>ssPolygonOptions</a></li>
--   <li><a>ssMarkerOptions</a></li>
--   <li><a>ssKind</a></li>
--   <li><a>ssName</a></li>
--   <li><a>ssStyleId</a></li>
--   <li><a>ssTableId</a></li>
--   </ul>
styleSetting :: StyleSetting

-- | Style definition for lines in the table.
ssPolylineOptions :: Lens' StyleSetting (Maybe LineStyle)

-- | Style definition for polygons in the table.
ssPolygonOptions :: Lens' StyleSetting (Maybe PolygonStyle)

-- | Style definition for points in the table.
ssMarkerOptions :: Lens' StyleSetting (Maybe PointStyle)

-- | The kind of item this is. A StyleSetting contains the style
--   definitions 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.
ssKind :: Lens' StyleSetting Text

-- | Optional name for the style setting.
ssName :: Lens' StyleSetting (Maybe Text)

-- | Identifier for the style setting (unique only within tables).
ssStyleId :: Lens' StyleSetting (Maybe Int32)

-- | Identifier for the table.
ssTableId :: Lens' StyleSetting (Maybe Text)

-- | Represents a point object.
--   
--   <i>See:</i> <a>point</a> smart constructor.
data Point

-- | Creates a value of <a>Point</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pCoordinates</a></li>
--   <li><a>pType</a></li>
--   </ul>
point :: Point

-- | The coordinates that define the point.
pCoordinates :: Lens' Point [Double]

-- | Point: A point geometry.
pType :: Lens' Point Text

-- | Represents a polygon object.
--   
--   <i>See:</i> <a>polygon</a> smart constructor.
data Polygon

-- | Creates a value of <a>Polygon</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>polCoordinates</a></li>
--   <li><a>polType</a></li>
--   </ul>
polygon :: Polygon

-- | The coordinates that define the polygon.
polCoordinates :: Lens' Polygon [[[Double]]]

-- | Type: A polygon geometry.
polType :: Lens' Polygon Text

-- | Represents a list of tasks for a table.
--   
--   <i>See:</i> <a>taskList</a> smart constructor.
data TaskList

-- | Creates a value of <a>TaskList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTotalItems</a></li>
--   <li><a>tNextPageToken</a></li>
--   <li><a>tKind</a></li>
--   <li><a>tItems</a></li>
--   </ul>
taskList :: TaskList

-- | Total number of tasks for the table.
tTotalItems :: Lens' TaskList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
tNextPageToken :: Lens' TaskList (Maybe Text)

-- | Type of the resource. This is always "fusiontables#taskList".
tKind :: Lens' TaskList Text

-- | List of all requested tasks.
tItems :: Lens' TaskList [Task]

-- | Represents a Geometry object.
--   
--   <i>See:</i> <a>geometry</a> smart constructor.
data Geometry

-- | Creates a value of <a>Geometry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gGeometries</a></li>
--   <li><a>gGeometry</a></li>
--   <li><a>gType</a></li>
--   </ul>
geometry :: Geometry

-- | The list of geometries in this geometry collection.
gGeometries :: Lens' Geometry [JSONValue]
gGeometry :: Lens' Geometry (Maybe JSONValue)

-- | Type: A collection of geometries.
gType :: Lens' Geometry Text

-- | Represents a list of templates for a given table.
--   
--   <i>See:</i> <a>templateList</a> smart constructor.
data TemplateList

-- | Creates a value of <a>TemplateList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>temTotalItems</a></li>
--   <li><a>temNextPageToken</a></li>
--   <li><a>temKind</a></li>
--   <li><a>temItems</a></li>
--   </ul>
templateList :: TemplateList

-- | Total number of templates for the table.
temTotalItems :: Lens' TemplateList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
temNextPageToken :: Lens' TemplateList (Maybe Text)

-- | The kind of item this is. For a template list, this is always
--   fusiontables#templateList .
temKind :: Lens' TemplateList Text

-- | List of all requested templates.
temItems :: Lens' TemplateList [Template]

-- | Represents an import request.
--   
--   <i>See:</i> <a>import'</a> smart constructor.
data Import

-- | Creates a value of <a>Import</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iKind</a></li>
--   <li><a>iNumRowsReceived</a></li>
--   </ul>
import' :: Import

-- | The kind of item this is. For an import, this is always
--   fusiontables#import.
iKind :: Lens' Import Text

-- | The number of rows received from the import request.
iNumRowsReceived :: Lens' Import (Maybe Int64)

-- | A background task on a table, initiated for time- or
--   resource-consuming operations such as changing column types or
--   deleting all rows.
--   
--   <i>See:</i> <a>task</a> smart constructor.
data Task

-- | Creates a value of <a>Task</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tasProgress</a></li>
--   <li><a>tasTaskId</a></li>
--   <li><a>tasKind</a></li>
--   <li><a>tasType</a></li>
--   <li><a>tasStarted</a></li>
--   </ul>
task :: Task

-- | Task percentage completion.
tasProgress :: Lens' Task (Maybe Text)

-- | Identifier for the task.
tasTaskId :: Lens' Task (Maybe Int64)

-- | Type of the resource. This is always "fusiontables#task".
tasKind :: Lens' Task Text

-- | Type of background task.
tasType :: Lens' Task (Maybe Text)

-- | false while the table is busy with some other task. true if this
--   background task is currently running.
tasStarted :: Lens' Task (Maybe Bool)

-- | Represents the contents of InfoWindow templates.
--   
--   <i>See:</i> <a>template</a> smart constructor.
data Template

-- | Creates a value of <a>Template</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ttAutomaticColumnNames</a></li>
--   <li><a>ttTemplateId</a></li>
--   <li><a>ttKind</a></li>
--   <li><a>ttBody</a></li>
--   <li><a>ttName</a></li>
--   <li><a>ttTableId</a></li>
--   </ul>
template :: Template

-- | List of columns from which the template is to be automatically
--   constructed. Only one of body or automaticColumns can be specified.
ttAutomaticColumnNames :: Lens' Template [Text]

-- | Identifier for the template, unique within the context of a particular
--   table.
ttTemplateId :: Lens' Template (Maybe Int32)

-- | The kind of item this is. For a template, this is always
--   fusiontables#template.
ttKind :: Lens' Template Text

-- | Body of the template. It contains HTML with {column_name} to insert
--   values from a particular column. The body is sanitized to remove
--   certain tags, e.g., script. Only one of body or automaticColumns can
--   be specified.
ttBody :: Lens' Template (Maybe Text)

-- | Optional name assigned to a template.
ttName :: Lens' Template (Maybe Text)

-- | Identifier for the table for which the template is defined.
ttTableId :: Lens' Template (Maybe Text)

-- | Represents a PointStyle within a StyleSetting
--   
--   <i>See:</i> <a>pointStyle</a> smart constructor.
data PointStyle

-- | Creates a value of <a>PointStyle</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psIconName</a></li>
--   <li><a>psIconStyler</a></li>
--   </ul>
pointStyle :: PointStyle

-- | Name of the icon. Use values defined in
--   http://www.google.com/fusiontables/DataSource?dsrcid=308519
psIconName :: Lens' PointStyle (Maybe Text)

-- | Column or a bucket value from which the icon name is to be determined.
psIconStyler :: Lens' PointStyle (Maybe StyleFunction)

-- | Represents a PolygonStyle within a StyleSetting
--   
--   <i>See:</i> <a>polygonStyle</a> smart constructor.
data PolygonStyle

-- | Creates a value of <a>PolygonStyle</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psFillColorStyler</a></li>
--   <li><a>psFillColor</a></li>
--   <li><a>psStrokeColorStyler</a></li>
--   <li><a>psStrokeWeight</a></li>
--   <li><a>psStrokeOpacity</a></li>
--   <li><a>psFillOpacity</a></li>
--   <li><a>psStrokeWeightStyler</a></li>
--   <li><a>psStrokeColor</a></li>
--   </ul>
polygonStyle :: PolygonStyle

-- | Column-value, gradient, or bucket styler that is used to determine the
--   interior color and opacity of the polygon.
psFillColorStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Color of the interior of the polygon in #RRGGBB format.
psFillColor :: Lens' PolygonStyle (Maybe Text)

-- | Column-value, gradient or buckets styler that is used to determine the
--   border color and opacity.
psStrokeColorStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Width of the polyon border in pixels.
psStrokeWeight :: Lens' PolygonStyle (Maybe Int32)

-- | Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
psStrokeOpacity :: Lens' PolygonStyle (Maybe Double)

-- | Opacity of the interior of the polygon: 0.0 (transparent) to 1.0
--   (opaque).
psFillOpacity :: Lens' PolygonStyle (Maybe Double)

-- | Column-value or bucket styler that is used to determine the width of
--   the polygon border.
psStrokeWeightStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Color of the polygon border in #RRGGBB format.
psStrokeColor :: Lens' PolygonStyle (Maybe Text)

-- | Gradient function that interpolates a range of colors based on column
--   value.
--   
--   <i>See:</i> <a>styleFunctionGradient</a> smart constructor.
data StyleFunctionGradient

-- | Creates a value of <a>StyleFunctionGradient</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfgMax</a></li>
--   <li><a>sfgMin</a></li>
--   <li><a>sfgColors</a></li>
--   </ul>
styleFunctionGradient :: StyleFunctionGradient

-- | Higher-end of the interpolation range: rows with this value will be
--   assigned to colors[n-1].
sfgMax :: Lens' StyleFunctionGradient (Maybe Double)

-- | Lower-end of the interpolation range: rows with this value will be
--   assigned to colors[0].
sfgMin :: Lens' StyleFunctionGradient (Maybe Double)

-- | Array with two or more colors.
sfgColors :: Lens' StyleFunctionGradient [StyleFunctionGradientColorsItem]

-- | Specifies the details of a column in a table.
--   
--   <i>See:</i> <a>column</a> smart constructor.
data Column

-- | Creates a value of <a>Column</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cColumnJSONSchema</a></li>
--   <li><a>cGraphPredicate</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cBaseColumn</a></li>
--   <li><a>cColumnPropertiesJSON</a></li>
--   <li><a>cName</a></li>
--   <li><a>cType</a></li>
--   <li><a>cFormatPattern</a></li>
--   <li><a>cColumnId</a></li>
--   <li><a>cValidValues</a></li>
--   <li><a>cValidateData</a></li>
--   <li><a>cDescription</a></li>
--   </ul>
column :: Column

-- | JSON schema for interpreting JSON in this column.
cColumnJSONSchema :: Lens' Column (Maybe Text)

-- | Column graph predicate. Used to map table to graph data model
--   (subject,predicate,object) See W3C Graph-based Data Model.
cGraphPredicate :: Lens' Column (Maybe Text)

-- | The kind of item this is. For a column, this is always
--   fusiontables#column.
cKind :: Lens' Column Text

-- | Identifier of the base column. If present, this column is derived from
--   the specified base column.
cBaseColumn :: Lens' Column (Maybe ColumnBaseColumn)

-- | JSON object containing custom column properties.
cColumnPropertiesJSON :: Lens' Column (Maybe Text)

-- | Name of the column.
cName :: Lens' Column (Maybe Text)

-- | Type of the column.
cType :: Lens' Column (Maybe Text)

-- | Format pattern. Acceptable values are DT_DATE_MEDIUMe.g Dec 24, 2008
--   DT_DATE_SHORTfor example 12/24/08 DT_DATE_TIME_MEDIUMfor example Dec
--   24, 2008 8:30:45 PM DT_DATE_TIME_SHORTfor example 12/24/08 8:30 PM
--   DT_DAY_MONTH_2_DIGIT_YEARfor example 24/12/08
--   DT_DAY_MONTH_2_DIGIT_YEAR_TIMEfor example 24/12/08 20:30
--   DT_DAY_MONTH_2_DIGIT_YEAR_TIME_MERIDIANfor example 24/12/08 8:30 PM
--   DT_DAY_MONTH_4_DIGIT_YEARfor example 24/12/2008
--   DT_DAY_MONTH_4_DIGIT_YEAR_TIMEfor example 24/12/2008 20:30
--   DT_DAY_MONTH_4_DIGIT_YEAR_TIME_MERIDIANfor example 24/12/2008 8:30 PM
--   DT_ISO_YEAR_MONTH_DAYfor example 2008-12-24
--   DT_ISO_YEAR_MONTH_DAY_TIMEfor example 2008-12-24 20:30:45
--   DT_MONTH_DAY_4_DIGIT_YEARfor example 12/24/2008 DT_TIME_LONGfor
--   example 8:30:45 PM UTC-6 DT_TIME_MEDIUMfor example 8:30:45 PM
--   DT_TIME_SHORTfor example 8:30 PM DT_YEAR_ONLYfor example 2008
--   HIGHLIGHT_UNTYPED_CELLSHighlight cell data that does not match the
--   data type NONENo formatting (default) NUMBER_CURRENCYfor example
--   $1234.56 NUMBER_DEFAULTfor example 1,234.56 NUMBER_INTEGERfor example
--   1235 NUMBER_NO_SEPARATORfor example 1234.56 NUMBER_PERCENTfor example
--   123,456% NUMBER_SCIENTIFICfor example 1E3
--   STRING_EIGHT_LINE_IMAGEDisplays thumbnail images as tall as eight
--   lines of text STRING_FOUR_LINE_IMAGEDisplays thumbnail images as tall
--   as four lines of text STRING_JSON_TEXTAllows editing of text as JSON
--   in UI STRING_JSON_LISTAllows editing of text as a JSON list in UI
--   STRING_LINKTreats cell as a link (must start with http:// or https://)
--   STRING_ONE_LINE_IMAGEDisplays thumbnail images as tall as one line of
--   text STRING_VIDEO_OR_MAPDisplay a video or map thumbnail
cFormatPattern :: Lens' Column (Maybe Text)

-- | Identifier for the column.
cColumnId :: Lens' Column (Maybe Int32)

-- | List of valid values used to validate data and supply a drop-down list
--   of values in the web application.
cValidValues :: Lens' Column [Text]

-- | If true, data entered via the web application is validated.
cValidateData :: Lens' Column (Maybe Bool)

-- | Column description.
cDescription :: Lens' Column (Maybe Text)

-- | Represents a table.
--   
--   <i>See:</i> <a>table</a> smart constructor.
data Table

-- | Creates a value of <a>Table</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tabaIsExportable</a></li>
--   <li><a>tabaKind</a></li>
--   <li><a>tabaColumnPropertiesJSONSchema</a></li>
--   <li><a>tabaTablePropertiesJSONSchema</a></li>
--   <li><a>tabaName</a></li>
--   <li><a>tabaTablePropertiesJSON</a></li>
--   <li><a>tabaColumns</a></li>
--   <li><a>tabaBaseTableIds</a></li>
--   <li><a>tabaTableId</a></li>
--   <li><a>tabaSQL</a></li>
--   <li><a>tabaDescription</a></li>
--   <li><a>tabaAttribution</a></li>
--   <li><a>tabaAttributionLink</a></li>
--   </ul>
table :: Table

-- | Variable for whether table is exportable.
tabaIsExportable :: Lens' Table (Maybe Bool)

-- | The kind of item this is. For a table, this is always
--   fusiontables#table.
tabaKind :: Lens' Table Text

-- | Default JSON schema for validating all JSON column properties.
tabaColumnPropertiesJSONSchema :: Lens' Table (Maybe Text)

-- | JSON schema for validating the JSON table properties.
tabaTablePropertiesJSONSchema :: Lens' Table (Maybe Text)

-- | Name assigned to a table.
tabaName :: Lens' Table (Maybe Text)

-- | JSON object containing custom table properties.
tabaTablePropertiesJSON :: Lens' Table (Maybe Text)

-- | Columns in the table.
tabaColumns :: Lens' Table [Column]

-- | Base table identifier if this table is a view or merged table.
tabaBaseTableIds :: Lens' Table [Text]

-- | Encrypted unique alphanumeric identifier for the table.
tabaTableId :: Lens' Table (Maybe Text)

-- | SQL that encodes the table definition for derived tables.
tabaSQL :: Lens' Table (Maybe Text)

-- | Description assigned to the table.
tabaDescription :: Lens' Table (Maybe Text)

-- | Attribution assigned to the table.
tabaAttribution :: Lens' Table (Maybe Text)

-- | Optional link for attribution.
tabaAttributionLink :: Lens' Table (Maybe Text)

-- | Represents a LineStyle within a StyleSetting
--   
--   <i>See:</i> <a>lineStyle</a> smart constructor.
data LineStyle

-- | Creates a value of <a>LineStyle</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsStrokeColorStyler</a></li>
--   <li><a>lsStrokeWeight</a></li>
--   <li><a>lsStrokeOpacity</a></li>
--   <li><a>lsStrokeWeightStyler</a></li>
--   <li><a>lsStrokeColor</a></li>
--   </ul>
lineStyle :: LineStyle

-- | Column-value, gradient or buckets styler that is used to determine the
--   line color and opacity.
lsStrokeColorStyler :: Lens' LineStyle (Maybe StyleFunction)

-- | Width of the line in pixels.
lsStrokeWeight :: Lens' LineStyle (Maybe Int32)

-- | Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
lsStrokeOpacity :: Lens' LineStyle (Maybe Double)

-- | Column-value or bucket styler that is used to determine the width of
--   the line.
lsStrokeWeightStyler :: Lens' LineStyle (Maybe StyleFunction)

-- | Color of the line in #RRGGBB format.
lsStrokeColor :: Lens' LineStyle (Maybe Text)


-- | Deletes the specified column.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.delete</tt>.
module Network.Google.Resource.FusionTables.Column.Delete

-- | A resource alias for <tt>fusiontables.column.delete</tt> method which
--   the <a>ColumnDelete</a> request conforms to.
type ColumnDeleteResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (Capture "columnId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>ColumnDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdTableId</a></li>
--   <li><a>cdColumnId</a></li>
--   </ul>
columnDelete :: Text -> Text -> ColumnDelete

-- | Deletes the specified column.
--   
--   <i>See:</i> <a>columnDelete</a> smart constructor.
data ColumnDelete

-- | Table from which the column is being deleted.
cdTableId :: Lens' ColumnDelete Text

-- | Name or identifier for the column being deleted.
cdColumnId :: Lens' ColumnDelete Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.Delete.ColumnDelete
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.Delete.ColumnDelete
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.Delete.ColumnDelete
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.Delete.ColumnDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.Delete.ColumnDelete


-- | Retrieves a specific column by its ID.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.get</tt>.
module Network.Google.Resource.FusionTables.Column.Get

-- | A resource alias for <tt>fusiontables.column.get</tt> method which the
--   <a>ColumnGet</a> request conforms to.
type ColumnGetResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (Capture "columnId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Column))))))

-- | Creates a value of <a>ColumnGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgTableId</a></li>
--   <li><a>cgColumnId</a></li>
--   </ul>
columnGet :: Text -> Text -> ColumnGet

-- | Retrieves a specific column by its ID.
--   
--   <i>See:</i> <a>columnGet</a> smart constructor.
data ColumnGet

-- | Table to which the column belongs.
cgTableId :: Lens' ColumnGet Text

-- | Name or identifier for the column that is being requested.
cgColumnId :: Lens' ColumnGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.Get.ColumnGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.Get.ColumnGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.Get.ColumnGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.Get.ColumnGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.Get.ColumnGet


-- | Adds a new column to the table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.insert</tt>.
module Network.Google.Resource.FusionTables.Column.Insert

-- | A resource alias for <tt>fusiontables.column.insert</tt> method which
--   the <a>ColumnInsert</a> request conforms to.
type ColumnInsertResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Column :> Post '[JSON] Column))))))

-- | Creates a value of <a>ColumnInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciPayload</a></li>
--   <li><a>ciTableId</a></li>
--   </ul>
columnInsert :: Column -> Text -> ColumnInsert

-- | Adds a new column to the table.
--   
--   <i>See:</i> <a>columnInsert</a> smart constructor.
data ColumnInsert

-- | Multipart request metadata.
ciPayload :: Lens' ColumnInsert Column

-- | Table for which a new column is being added.
ciTableId :: Lens' ColumnInsert Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.Insert.ColumnInsert
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.Insert.ColumnInsert
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.Insert.ColumnInsert
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.Insert.ColumnInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.Insert.ColumnInsert


-- | Retrieves a list of columns.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.list</tt>.
module Network.Google.Resource.FusionTables.Column.List

-- | A resource alias for <tt>fusiontables.column.list</tt> method which
--   the <a>ColumnList'</a> request conforms to.
type ColumnListResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ColumnList)))))))

-- | Creates a value of <a>ColumnList'</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clPageToken</a></li>
--   <li><a>clTableId</a></li>
--   <li><a>clMaxResults</a></li>
--   </ul>
columnList' :: Text -> ColumnList'

-- | Retrieves a list of columns.
--   
--   <i>See:</i> <a>columnList'</a> smart constructor.
data ColumnList'

-- | Continuation token specifying which result page to return.
clPageToken :: Lens' ColumnList' (Maybe Text)

-- | Table whose columns are being listed.
clTableId :: Lens' ColumnList' Text

-- | Maximum number of columns to return. Default is 5.
clMaxResults :: Lens' ColumnList' (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.List.ColumnList'
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.List.ColumnList'
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.List.ColumnList'
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.List.ColumnList'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.List.ColumnList'


-- | Updates the name or type of an existing column. This method supports
--   patch semantics.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.patch</tt>.
module Network.Google.Resource.FusionTables.Column.Patch

-- | A resource alias for <tt>fusiontables.column.patch</tt> method which
--   the <a>ColumnPatch</a> request conforms to.
type ColumnPatchResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (Capture "columnId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Column :> Patch '[JSON] Column)))))))

-- | Creates a value of <a>ColumnPatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPayload</a></li>
--   <li><a>cpTableId</a></li>
--   <li><a>cpColumnId</a></li>
--   </ul>
columnPatch :: Column -> Text -> Text -> ColumnPatch

-- | Updates the name or type of an existing column. This method supports
--   patch semantics.
--   
--   <i>See:</i> <a>columnPatch</a> smart constructor.
data ColumnPatch

-- | Multipart request metadata.
cpPayload :: Lens' ColumnPatch Column

-- | Table for which the column is being updated.
cpTableId :: Lens' ColumnPatch Text

-- | Name or identifier for the column that is being updated.
cpColumnId :: Lens' ColumnPatch Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.Patch.ColumnPatch
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.Patch.ColumnPatch
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.Patch.ColumnPatch
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.Patch.ColumnPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.Patch.ColumnPatch


-- | Updates the name or type of an existing column.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.column.update</tt>.
module Network.Google.Resource.FusionTables.Column.Update

-- | A resource alias for <tt>fusiontables.column.update</tt> method which
--   the <a>ColumnUpdate</a> request conforms to.
type ColumnUpdateResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("columns" :> (Capture "columnId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Column :> Put '[JSON] Column)))))))

-- | Creates a value of <a>ColumnUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cuPayload</a></li>
--   <li><a>cuTableId</a></li>
--   <li><a>cuColumnId</a></li>
--   </ul>
columnUpdate :: Column -> Text -> Text -> ColumnUpdate

-- | Updates the name or type of an existing column.
--   
--   <i>See:</i> <a>columnUpdate</a> smart constructor.
data ColumnUpdate

-- | Multipart request metadata.
cuPayload :: Lens' ColumnUpdate Column

-- | Table for which the column is being updated.
cuTableId :: Lens' ColumnUpdate Text

-- | Name or identifier for the column that is being updated.
cuColumnId :: Lens' ColumnUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Column.Update.ColumnUpdate
instance Data.Data.Data Network.Google.Resource.FusionTables.Column.Update.ColumnUpdate
instance GHC.Show.Show Network.Google.Resource.FusionTables.Column.Update.ColumnUpdate
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Column.Update.ColumnUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Column.Update.ColumnUpdate


-- | Executes a Fusion Tables SQL statement, which can be any of - SELECT -
--   INSERT - UPDATE - DELETE - SHOW - DESCRIBE - CREATE statement.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.query.sql</tt>.
module Network.Google.Resource.FusionTables.Query.SQL

-- | A resource alias for <tt>fusiontables.query.sql</tt> method which the
--   <a>QuerySQL</a> request conforms to.
type QuerySQLResource = ("fusiontables" :> ("v2" :> ("query" :> (QueryParam "sql" Text :> (QueryParam "typed" Bool :> (QueryParam "hdrs" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] SQLresponse))))))) :<|> ("fusiontables" :> ("v2" :> ("query" :> (QueryParam "sql" Text :> (QueryParam "typed" Bool :> (QueryParam "hdrs" Bool :> (QueryParam "alt" AltMedia :> Post '[OctetStream] Stream)))))))

-- | Creates a value of <a>QuerySQL</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qsqlTyped</a></li>
--   <li><a>qsqlHdrs</a></li>
--   <li><a>qsqlSQL</a></li>
--   </ul>
querySQL :: Text -> QuerySQL

-- | Executes a Fusion Tables SQL statement, which can be any of - SELECT -
--   INSERT - UPDATE - DELETE - SHOW - DESCRIBE - CREATE statement.
--   
--   <i>See:</i> <a>querySQL</a> smart constructor.
data QuerySQL

-- | Whether typed values are returned in the (JSON) response: numbers for
--   numeric values and parsed geometries for KML values. Default is true.
qsqlTyped :: Lens' QuerySQL (Maybe Bool)

-- | Whether column names are included in the first row. Default is true.
qsqlHdrs :: Lens' QuerySQL (Maybe Bool)

-- | A Fusion Tables SQL statement, which can be any of - SELECT - INSERT -
--   UPDATE - DELETE - SHOW - DESCRIBE - CREATE
qsqlSQL :: Lens' QuerySQL Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Query.SQL.QuerySQL
instance Data.Data.Data Network.Google.Resource.FusionTables.Query.SQL.QuerySQL
instance GHC.Show.Show Network.Google.Resource.FusionTables.Query.SQL.QuerySQL
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Query.SQL.QuerySQL
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Query.SQL.QuerySQL
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.FusionTables.Query.SQL.QuerySQL)


-- | Executes a SQL statement which can be any of - SELECT - SHOW -
--   DESCRIBE
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.query.sqlGet</tt>.
module Network.Google.Resource.FusionTables.Query.SQLGet

-- | A resource alias for <tt>fusiontables.query.sqlGet</tt> method which
--   the <a>QuerySQLGet</a> request conforms to.
type QuerySQLGetResource = ("fusiontables" :> ("v2" :> ("query" :> (QueryParam "sql" Text :> (QueryParam "typed" Bool :> (QueryParam "hdrs" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] SQLresponse))))))) :<|> ("fusiontables" :> ("v2" :> ("query" :> (QueryParam "sql" Text :> (QueryParam "typed" Bool :> (QueryParam "hdrs" Bool :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))

-- | Creates a value of <a>QuerySQLGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qsqlgTyped</a></li>
--   <li><a>qsqlgHdrs</a></li>
--   <li><a>qsqlgSQL</a></li>
--   </ul>
querySQLGet :: Text -> QuerySQLGet

-- | Executes a SQL statement which can be any of - SELECT - SHOW -
--   DESCRIBE
--   
--   <i>See:</i> <a>querySQLGet</a> smart constructor.
data QuerySQLGet

-- | Whether typed values are returned in the (JSON) response: numbers for
--   numeric values and parsed geometries for KML values. Default is true.
qsqlgTyped :: Lens' QuerySQLGet (Maybe Bool)

-- | Whether column names are included (in the first row). Default is true.
qsqlgHdrs :: Lens' QuerySQLGet (Maybe Bool)

-- | A SQL statement which can be any of - SELECT - SHOW - DESCRIBE
qsqlgSQL :: Lens' QuerySQLGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.FusionTables.Query.SQLGet.QuerySQLGet)


-- | Deletes a style.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.delete</tt>.
module Network.Google.Resource.FusionTables.Style.Delete

-- | A resource alias for <tt>fusiontables.style.delete</tt> method which
--   the <a>StyleDelete</a> request conforms to.
type StyleDeleteResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (Capture "styleId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>StyleDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdStyleId</a></li>
--   <li><a>sdTableId</a></li>
--   </ul>
styleDelete :: Int32 -> Text -> StyleDelete

-- | Deletes a style.
--   
--   <i>See:</i> <a>styleDelete</a> smart constructor.
data StyleDelete

-- | Identifier (within a table) for the style being deleted
sdStyleId :: Lens' StyleDelete Int32

-- | Table from which the style is being deleted
sdTableId :: Lens' StyleDelete Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.Delete.StyleDelete
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.Delete.StyleDelete
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.Delete.StyleDelete
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.Delete.StyleDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.Delete.StyleDelete


-- | Gets a specific style.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.get</tt>.
module Network.Google.Resource.FusionTables.Style.Get

-- | A resource alias for <tt>fusiontables.style.get</tt> method which the
--   <a>StyleGet</a> request conforms to.
type StyleGetResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (Capture "styleId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] StyleSetting))))))

-- | Creates a value of <a>StyleGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgStyleId</a></li>
--   <li><a>sgTableId</a></li>
--   </ul>
styleGet :: Int32 -> Text -> StyleGet

-- | Gets a specific style.
--   
--   <i>See:</i> <a>styleGet</a> smart constructor.
data StyleGet

-- | Identifier (integer) for a specific style in a table
sgStyleId :: Lens' StyleGet Int32

-- | Table to which the requested style belongs
sgTableId :: Lens' StyleGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.Get.StyleGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.Get.StyleGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.Get.StyleGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.Get.StyleGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.Get.StyleGet


-- | Adds a new style for the table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.insert</tt>.
module Network.Google.Resource.FusionTables.Style.Insert

-- | A resource alias for <tt>fusiontables.style.insert</tt> method which
--   the <a>StyleInsert</a> request conforms to.
type StyleInsertResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StyleSetting :> Post '[JSON] StyleSetting))))))

-- | Creates a value of <a>StyleInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siPayload</a></li>
--   <li><a>siTableId</a></li>
--   </ul>
styleInsert :: StyleSetting -> Text -> StyleInsert

-- | Adds a new style for the table.
--   
--   <i>See:</i> <a>styleInsert</a> smart constructor.
data StyleInsert

-- | Multipart request metadata.
siPayload :: Lens' StyleInsert StyleSetting

-- | Table for which a new style is being added
siTableId :: Lens' StyleInsert Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.Insert.StyleInsert
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.Insert.StyleInsert
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.Insert.StyleInsert
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.Insert.StyleInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.Insert.StyleInsert


-- | Retrieves a list of styles.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.list</tt>.
module Network.Google.Resource.FusionTables.Style.List

-- | A resource alias for <tt>fusiontables.style.list</tt> method which the
--   <a>StyleList</a> request conforms to.
type StyleListResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] StyleSettingList)))))))

-- | Creates a value of <a>StyleList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slPageToken</a></li>
--   <li><a>slTableId</a></li>
--   <li><a>slMaxResults</a></li>
--   </ul>
styleList :: Text -> StyleList

-- | Retrieves a list of styles.
--   
--   <i>See:</i> <a>styleList</a> smart constructor.
data StyleList

-- | Continuation token specifying which result page to return. Optional.
slPageToken :: Lens' StyleList (Maybe Text)

-- | Table whose styles are being listed
slTableId :: Lens' StyleList Text

-- | Maximum number of styles to return. Optional. Default is 5.
slMaxResults :: Lens' StyleList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.List.StyleList
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.List.StyleList
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.List.StyleList
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.List.StyleList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.List.StyleList


-- | Updates an existing style. This method supports patch semantics.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.patch</tt>.
module Network.Google.Resource.FusionTables.Style.Patch

-- | A resource alias for <tt>fusiontables.style.patch</tt> method which
--   the <a>StylePatch</a> request conforms to.
type StylePatchResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (Capture "styleId" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StyleSetting :> Patch '[JSON] StyleSetting)))))))

-- | Creates a value of <a>StylePatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spPayload</a></li>
--   <li><a>spStyleId</a></li>
--   <li><a>spTableId</a></li>
--   </ul>
stylePatch :: StyleSetting -> Int32 -> Text -> StylePatch

-- | Updates an existing style. This method supports patch semantics.
--   
--   <i>See:</i> <a>stylePatch</a> smart constructor.
data StylePatch

-- | Multipart request metadata.
spPayload :: Lens' StylePatch StyleSetting

-- | Identifier (within a table) for the style being updated.
spStyleId :: Lens' StylePatch Int32

-- | Table whose style is being updated.
spTableId :: Lens' StylePatch Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.Patch.StylePatch
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.Patch.StylePatch
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.Patch.StylePatch
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.Patch.StylePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.Patch.StylePatch


-- | Updates an existing style.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.style.update</tt>.
module Network.Google.Resource.FusionTables.Style.Update

-- | A resource alias for <tt>fusiontables.style.update</tt> method which
--   the <a>StyleUpdate</a> request conforms to.
type StyleUpdateResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("styles" :> (Capture "styleId" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StyleSetting :> Put '[JSON] StyleSetting)))))))

-- | Creates a value of <a>StyleUpdate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>suPayload</a></li>
--   <li><a>suStyleId</a></li>
--   <li><a>suTableId</a></li>
--   </ul>
styleUpdate :: StyleSetting -> Int32 -> Text -> StyleUpdate

-- | Updates an existing style.
--   
--   <i>See:</i> <a>styleUpdate</a> smart constructor.
data StyleUpdate

-- | Multipart request metadata.
suPayload :: Lens' StyleUpdate StyleSetting

-- | Identifier (within a table) for the style being updated.
suStyleId :: Lens' StyleUpdate Int32

-- | Table whose style is being updated.
suTableId :: Lens' StyleUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Style.Update.StyleUpdate
instance Data.Data.Data Network.Google.Resource.FusionTables.Style.Update.StyleUpdate
instance GHC.Show.Show Network.Google.Resource.FusionTables.Style.Update.StyleUpdate
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Style.Update.StyleUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Style.Update.StyleUpdate


-- | Copies a table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.copy</tt>.
module Network.Google.Resource.FusionTables.Table.Copy

-- | A resource alias for <tt>fusiontables.table.copy</tt> method which the
--   <a>TableCopy</a> request conforms to.
type TableCopyResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("copy" :> (QueryParam "copyPresentation" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] Table))))))

-- | Creates a value of <a>TableCopy</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcTableId</a></li>
--   <li><a>tcCopyPresentation</a></li>
--   </ul>
tableCopy :: Text -> TableCopy

-- | Copies a table.
--   
--   <i>See:</i> <a>tableCopy</a> smart constructor.
data TableCopy

-- | ID of the table that is being copied.
tcTableId :: Lens' TableCopy Text

-- | Whether to also copy tabs, styles, and templates. Default is false.
tcCopyPresentation :: Lens' TableCopy (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Copy.TableCopy
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Copy.TableCopy
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Copy.TableCopy
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Copy.TableCopy
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Copy.TableCopy


-- | Deletes a table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.delete</tt>.
module Network.Google.Resource.FusionTables.Table.Delete

-- | A resource alias for <tt>fusiontables.table.delete</tt> method which
--   the <a>TableDelete</a> request conforms to.
type TableDeleteResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>TableDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tddTableId</a></li>
--   </ul>
tableDelete :: Text -> TableDelete

-- | Deletes a table.
--   
--   <i>See:</i> <a>tableDelete</a> smart constructor.
data TableDelete

-- | ID of the table to be deleted.
tddTableId :: Lens' TableDelete Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Delete.TableDelete
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Delete.TableDelete
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Delete.TableDelete
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Delete.TableDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Delete.TableDelete


-- | Retrieves a specific table by its ID.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.get</tt>.
module Network.Google.Resource.FusionTables.Table.Get

-- | A resource alias for <tt>fusiontables.table.get</tt> method which the
--   <a>TableGet</a> request conforms to.
type TableGetResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Table))))

-- | Creates a value of <a>TableGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgTableId</a></li>
--   </ul>
tableGet :: Text -> TableGet

-- | Retrieves a specific table by its ID.
--   
--   <i>See:</i> <a>tableGet</a> smart constructor.
data TableGet

-- | Identifier for the table being requested.
tgTableId :: Lens' TableGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Get.TableGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Get.TableGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Get.TableGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Get.TableGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Get.TableGet


-- | Imports more rows into a table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.importRows</tt>.
module Network.Google.Resource.FusionTables.Table.ImportRows

-- | A resource alias for <tt>fusiontables.table.importRows</tt> method
--   which the <a>TableImportRows</a> request conforms to.
type TableImportRowsResource = ("fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("import" :> (QueryParam "startLine" (Textual Int32) :> (QueryParam "endLine" (Textual Int32) :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "isStrict" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] Import))))))))))) :<|> ("upload" :> ("fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("import" :> (QueryParam "startLine" (Textual Int32) :> (QueryParam "endLine" (Textual Int32) :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "isStrict" Bool :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] Import))))))))))))))

-- | Creates a value of <a>TableImportRows</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tirStartLine</a></li>
--   <li><a>tirEndLine</a></li>
--   <li><a>tirTableId</a></li>
--   <li><a>tirDelimiter</a></li>
--   <li><a>tirEncoding</a></li>
--   <li><a>tirIsStrict</a></li>
--   </ul>
tableImportRows :: Text -> TableImportRows

-- | Imports more rows into a table.
--   
--   <i>See:</i> <a>tableImportRows</a> smart constructor.
data TableImportRows

-- | The index of the first line from which to start importing, inclusive.
--   Default is 0.
tirStartLine :: Lens' TableImportRows (Maybe Int32)

-- | The index of the line up to which data will be imported. Default is to
--   import the entire file. If endLine is negative, it is an offset from
--   the end of the file; the imported content will exclude the last
--   endLine lines.
tirEndLine :: Lens' TableImportRows (Maybe Int32)

-- | The table into which new rows are being imported.
tirTableId :: Lens' TableImportRows Text

-- | The delimiter used to separate cell values. This can only consist of a
--   single character. Default is ,.
tirDelimiter :: Lens' TableImportRows (Maybe Text)

-- | The encoding of the content. Default is UTF-8. Use auto-detect if you
--   are unsure of the encoding.
tirEncoding :: Lens' TableImportRows (Maybe Text)

-- | Whether the imported CSV must have the same number of values for each
--   row. If false, rows with fewer values will be padded with empty
--   values. Default is true.
tirIsStrict :: Lens' TableImportRows (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.FusionTables.Table.ImportRows.TableImportRows)


-- | Imports a new table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.importTable</tt>.
module Network.Google.Resource.FusionTables.Table.ImportTable

-- | A resource alias for <tt>fusiontables.table.importTable</tt> method
--   which the <a>TableImportTable</a> request conforms to.
type TableImportTableResource = ("fusiontables" :> ("v2" :> ("tables" :> ("import" :> (QueryParam "name" Text :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Table)))))))) :<|> ("upload" :> ("fusiontables" :> ("v2" :> ("tables" :> ("import" :> (QueryParam "name" Text :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] Table)))))))))))

-- | Creates a value of <a>TableImportTable</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>titName</a></li>
--   <li><a>titDelimiter</a></li>
--   <li><a>titEncoding</a></li>
--   </ul>
tableImportTable :: Text -> TableImportTable

-- | Imports a new table.
--   
--   <i>See:</i> <a>tableImportTable</a> smart constructor.
data TableImportTable

-- | The name to be assigned to the new table.
titName :: Lens' TableImportTable Text

-- | The delimiter used to separate cell values. This can only consist of a
--   single character. Default is ,.
titDelimiter :: Lens' TableImportTable (Maybe Text)

-- | The encoding of the content. Default is UTF-8. Use auto-detect if you
--   are unsure of the encoding.
titEncoding :: Lens' TableImportTable (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.FusionTables.Table.ImportTable.TableImportTable)


-- | Creates a new table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.insert</tt>.
module Network.Google.Resource.FusionTables.Table.Insert

-- | A resource alias for <tt>fusiontables.table.insert</tt> method which
--   the <a>TableInsert</a> request conforms to.
type TableInsertResource = "fusiontables" :> ("v2" :> ("tables" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Post '[JSON] Table))))

-- | Creates a value of <a>TableInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiPayload</a></li>
--   </ul>
tableInsert :: Table -> TableInsert

-- | Creates a new table.
--   
--   <i>See:</i> <a>tableInsert</a> smart constructor.
data TableInsert

-- | Multipart request metadata.
tiPayload :: Lens' TableInsert Table
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Insert.TableInsert
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Insert.TableInsert
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Insert.TableInsert
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Insert.TableInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Insert.TableInsert


-- | Retrieves a list of tables a user owns.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.list</tt>.
module Network.Google.Resource.FusionTables.Table.List

-- | A resource alias for <tt>fusiontables.table.list</tt> method which the
--   <a>TableList'</a> request conforms to.
type TableListResource = "fusiontables" :> ("v2" :> ("tables" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TableList)))))

-- | Creates a value of <a>TableList'</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tPageToken</a></li>
--   <li><a>tMaxResults</a></li>
--   </ul>
tableList' :: TableList'

-- | Retrieves a list of tables a user owns.
--   
--   <i>See:</i> <a>tableList'</a> smart constructor.
data TableList'

-- | Continuation token specifying which result page to return.
tPageToken :: Lens' TableList' (Maybe Text)

-- | Maximum number of tables to return. Default is 5.
tMaxResults :: Lens' TableList' (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.List.TableList'
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.List.TableList'
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.List.TableList'
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.List.TableList'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.List.TableList'


-- | Updates an existing table. Unless explicitly requested, only the name,
--   description, and attribution will be updated. This method supports
--   patch semantics.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.patch</tt>.
module Network.Google.Resource.FusionTables.Table.Patch

-- | A resource alias for <tt>fusiontables.table.patch</tt> method which
--   the <a>TablePatch</a> request conforms to.
type TablePatchResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> (QueryParam "replaceViewDefinition" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Patch '[JSON] Table))))))

-- | Creates a value of <a>TablePatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpPayload</a></li>
--   <li><a>tpReplaceViewDefinition</a></li>
--   <li><a>tpTableId</a></li>
--   </ul>
tablePatch :: Table -> Text -> TablePatch

-- | Updates an existing table. Unless explicitly requested, only the name,
--   description, and attribution will be updated. This method supports
--   patch semantics.
--   
--   <i>See:</i> <a>tablePatch</a> smart constructor.
data TablePatch

-- | Multipart request metadata.
tpPayload :: Lens' TablePatch Table

-- | Whether the view definition is also updated. The specified view
--   definition replaces the existing one. Only a view can be updated with
--   a new definition.
tpReplaceViewDefinition :: Lens' TablePatch (Maybe Bool)

-- | ID of the table that is being updated.
tpTableId :: Lens' TablePatch Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Patch.TablePatch
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Patch.TablePatch
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Patch.TablePatch
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Patch.TablePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Patch.TablePatch


-- | Replaces rows of an existing table. Current rows remain visible until
--   all replacement rows are ready.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.replaceRows</tt>.
module Network.Google.Resource.FusionTables.Table.ReplaceRows

-- | A resource alias for <tt>fusiontables.table.replaceRows</tt> method
--   which the <a>TableReplaceRows</a> request conforms to.
type TableReplaceRowsResource = ("fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("replace" :> (QueryParam "startLine" (Textual Int32) :> (QueryParam "endLine" (Textual Int32) :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "isStrict" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] Task))))))))))) :<|> ("upload" :> ("fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("replace" :> (QueryParam "startLine" (Textual Int32) :> (QueryParam "endLine" (Textual Int32) :> (QueryParam "delimiter" Text :> (QueryParam "encoding" Text :> (QueryParam "isStrict" Bool :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] Task))))))))))))))

-- | Creates a value of <a>TableReplaceRows</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trrStartLine</a></li>
--   <li><a>trrEndLine</a></li>
--   <li><a>trrTableId</a></li>
--   <li><a>trrDelimiter</a></li>
--   <li><a>trrEncoding</a></li>
--   <li><a>trrIsStrict</a></li>
--   </ul>
tableReplaceRows :: Text -> TableReplaceRows

-- | Replaces rows of an existing table. Current rows remain visible until
--   all replacement rows are ready.
--   
--   <i>See:</i> <a>tableReplaceRows</a> smart constructor.
data TableReplaceRows

-- | The index of the first line from which to start importing, inclusive.
--   Default is 0.
trrStartLine :: Lens' TableReplaceRows (Maybe Int32)

-- | The index of the line up to which data will be imported. Default is to
--   import the entire file. If endLine is negative, it is an offset from
--   the end of the file; the imported content will exclude the last
--   endLine lines.
trrEndLine :: Lens' TableReplaceRows (Maybe Int32)

-- | Table whose rows will be replaced.
trrTableId :: Lens' TableReplaceRows Text

-- | The delimiter used to separate cell values. This can only consist of a
--   single character. Default is ,.
trrDelimiter :: Lens' TableReplaceRows (Maybe Text)

-- | The encoding of the content. Default is UTF-8. Use 'auto-detect' if
--   you are unsure of the encoding.
trrEncoding :: Lens' TableReplaceRows (Maybe Text)

-- | Whether the imported CSV must have the same number of column values
--   for each row. If true, throws an exception if the CSV does not have
--   the same number of columns. If false, rows with fewer column values
--   will be padded with empty values. Default is true.
trrIsStrict :: Lens' TableReplaceRows (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.FusionTables.Table.ReplaceRows.TableReplaceRows)


-- | Updates an existing table. Unless explicitly requested, only the name,
--   description, and attribution will be updated.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.table.update</tt>.
module Network.Google.Resource.FusionTables.Table.Update

-- | A resource alias for <tt>fusiontables.table.update</tt> method which
--   the <a>TableUpdate</a> request conforms to.
type TableUpdateResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> (QueryParam "replaceViewDefinition" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Put '[JSON] Table))))))

-- | Creates a value of <a>TableUpdate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tabPayload</a></li>
--   <li><a>tabReplaceViewDefinition</a></li>
--   <li><a>tabTableId</a></li>
--   </ul>
tableUpdate :: Table -> Text -> TableUpdate

-- | Updates an existing table. Unless explicitly requested, only the name,
--   description, and attribution will be updated.
--   
--   <i>See:</i> <a>tableUpdate</a> smart constructor.
data TableUpdate

-- | Multipart request metadata.
tabPayload :: Lens' TableUpdate Table

-- | Whether the view definition is also updated. The specified view
--   definition replaces the existing one. Only a view can be updated with
--   a new definition.
tabReplaceViewDefinition :: Lens' TableUpdate (Maybe Bool)

-- | ID of the table that is being updated.
tabTableId :: Lens' TableUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Table.Update.TableUpdate
instance Data.Data.Data Network.Google.Resource.FusionTables.Table.Update.TableUpdate
instance GHC.Show.Show Network.Google.Resource.FusionTables.Table.Update.TableUpdate
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Table.Update.TableUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Table.Update.TableUpdate


-- | Deletes a specific task by its ID, unless that task has already
--   started running.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.task.delete</tt>.
module Network.Google.Resource.FusionTables.Task.Delete

-- | A resource alias for <tt>fusiontables.task.delete</tt> method which
--   the <a>TaskDelete</a> request conforms to.
type TaskDeleteResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("tasks" :> (Capture "taskId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>TaskDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdTaskId</a></li>
--   <li><a>tdTableId</a></li>
--   </ul>
taskDelete :: Text -> Text -> TaskDelete

-- | Deletes a specific task by its ID, unless that task has already
--   started running.
--   
--   <i>See:</i> <a>taskDelete</a> smart constructor.
data TaskDelete

-- | The identifier of the task to delete.
tdTaskId :: Lens' TaskDelete Text

-- | Table from which the task is being deleted.
tdTableId :: Lens' TaskDelete Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Task.Delete.TaskDelete
instance Data.Data.Data Network.Google.Resource.FusionTables.Task.Delete.TaskDelete
instance GHC.Show.Show Network.Google.Resource.FusionTables.Task.Delete.TaskDelete
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Task.Delete.TaskDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Task.Delete.TaskDelete


-- | Retrieves a specific task by its ID.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.task.get</tt>.
module Network.Google.Resource.FusionTables.Task.Get

-- | A resource alias for <tt>fusiontables.task.get</tt> method which the
--   <a>TaskGet</a> request conforms to.
type TaskGetResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("tasks" :> (Capture "taskId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Task))))))

-- | Creates a value of <a>TaskGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tggTaskId</a></li>
--   <li><a>tggTableId</a></li>
--   </ul>
taskGet :: Text -> Text -> TaskGet

-- | Retrieves a specific task by its ID.
--   
--   <i>See:</i> <a>taskGet</a> smart constructor.
data TaskGet

-- | The identifier of the task to get.
tggTaskId :: Lens' TaskGet Text

-- | Table to which the task belongs.
tggTableId :: Lens' TaskGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Task.Get.TaskGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Task.Get.TaskGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Task.Get.TaskGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Task.Get.TaskGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Task.Get.TaskGet


-- | Retrieves a list of tasks.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.task.list</tt>.
module Network.Google.Resource.FusionTables.Task.List

-- | A resource alias for <tt>fusiontables.task.list</tt> method which the
--   <a>TaskList'</a> request conforms to.
type TaskListResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("tasks" :> (QueryParam "pageToken" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TaskList))))))))

-- | Creates a value of <a>TaskList'</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlTableId</a></li>
--   <li><a>tlStartIndex</a></li>
--   <li><a>tlMaxResults</a></li>
--   </ul>
taskList' :: Text -> TaskList'

-- | Retrieves a list of tasks.
--   
--   <i>See:</i> <a>taskList'</a> smart constructor.
data TaskList'

-- | Continuation token specifying which result page to return.
tlPageToken :: Lens' TaskList' (Maybe Text)

-- | Table whose tasks are being listed.
tlTableId :: Lens' TaskList' Text

-- | Index of the first result returned in the current page.
tlStartIndex :: Lens' TaskList' (Maybe Word32)

-- | Maximum number of tasks to return. Default is 5.
tlMaxResults :: Lens' TaskList' (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Task.List.TaskList'
instance Data.Data.Data Network.Google.Resource.FusionTables.Task.List.TaskList'
instance GHC.Show.Show Network.Google.Resource.FusionTables.Task.List.TaskList'
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Task.List.TaskList'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Task.List.TaskList'


-- | Deletes a template
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.delete</tt>.
module Network.Google.Resource.FusionTables.Template.Delete

-- | A resource alias for <tt>fusiontables.template.delete</tt> method
--   which the <a>TemplateDelete</a> request conforms to.
type TemplateDeleteResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (Capture "templateId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>TemplateDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTemplateId</a></li>
--   <li><a>tTableId</a></li>
--   </ul>
templateDelete :: Int32 -> Text -> TemplateDelete

-- | Deletes a template
--   
--   <i>See:</i> <a>templateDelete</a> smart constructor.
data TemplateDelete

-- | Identifier for the template which is being deleted
tTemplateId :: Lens' TemplateDelete Int32

-- | Table from which the template is being deleted
tTableId :: Lens' TemplateDelete Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.Delete.TemplateDelete
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.Delete.TemplateDelete
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.Delete.TemplateDelete
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.Delete.TemplateDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.Delete.TemplateDelete


-- | Retrieves a specific template by its id
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.get</tt>.
module Network.Google.Resource.FusionTables.Template.Get

-- | A resource alias for <tt>fusiontables.template.get</tt> method which
--   the <a>TemplateGet</a> request conforms to.
type TemplateGetResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (Capture "templateId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Template))))))

-- | Creates a value of <a>TemplateGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>temeTemplateId</a></li>
--   <li><a>temeTableId</a></li>
--   </ul>
templateGet :: Int32 -> Text -> TemplateGet

-- | Retrieves a specific template by its id
--   
--   <i>See:</i> <a>templateGet</a> smart constructor.
data TemplateGet

-- | Identifier for the template that is being requested
temeTemplateId :: Lens' TemplateGet Int32

-- | Table to which the template belongs
temeTableId :: Lens' TemplateGet Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.Get.TemplateGet
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.Get.TemplateGet
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.Get.TemplateGet
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.Get.TemplateGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.Get.TemplateGet


-- | Creates a new template for the table.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.insert</tt>.
module Network.Google.Resource.FusionTables.Template.Insert

-- | A resource alias for <tt>fusiontables.template.insert</tt> method
--   which the <a>TemplateInsert</a> request conforms to.
type TemplateInsertResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Template :> Post '[JSON] Template))))))

-- | Creates a value of <a>TemplateInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>temPayload</a></li>
--   <li><a>temTableId</a></li>
--   </ul>
templateInsert :: Template -> Text -> TemplateInsert

-- | Creates a new template for the table.
--   
--   <i>See:</i> <a>templateInsert</a> smart constructor.
data TemplateInsert

-- | Multipart request metadata.
temPayload :: Lens' TemplateInsert Template

-- | Table for which a new template is being created
temTableId :: Lens' TemplateInsert Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.Insert.TemplateInsert
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.Insert.TemplateInsert
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.Insert.TemplateInsert
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.Insert.TemplateInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.Insert.TemplateInsert


-- | Retrieves a list of templates.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.list</tt>.
module Network.Google.Resource.FusionTables.Template.List

-- | A resource alias for <tt>fusiontables.template.list</tt> method which
--   the <a>TemplateList'</a> request conforms to.
type TemplateListResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TemplateList)))))))

-- | Creates a value of <a>TemplateList'</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tllPageToken</a></li>
--   <li><a>tllTableId</a></li>
--   <li><a>tllMaxResults</a></li>
--   </ul>
templateList' :: Text -> TemplateList'

-- | Retrieves a list of templates.
--   
--   <i>See:</i> <a>templateList'</a> smart constructor.
data TemplateList'

-- | Continuation token specifying which results page to return. Optional.
tllPageToken :: Lens' TemplateList' (Maybe Text)

-- | Identifier for the table whose templates are being requested
tllTableId :: Lens' TemplateList' Text

-- | Maximum number of templates to return. Optional. Default is 5.
tllMaxResults :: Lens' TemplateList' (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.List.TemplateList'
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.List.TemplateList'
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.List.TemplateList'
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.List.TemplateList'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.List.TemplateList'


-- | Updates an existing template. This method supports patch semantics.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.patch</tt>.
module Network.Google.Resource.FusionTables.Template.Patch

-- | A resource alias for <tt>fusiontables.template.patch</tt> method which
--   the <a>TemplatePatch</a> request conforms to.
type TemplatePatchResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (Capture "templateId" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Template :> Patch '[JSON] Template)))))))

-- | Creates a value of <a>TemplatePatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tppTemplateId</a></li>
--   <li><a>tppPayload</a></li>
--   <li><a>tppTableId</a></li>
--   </ul>
templatePatch :: Int32 -> Template -> Text -> TemplatePatch

-- | Updates an existing template. This method supports patch semantics.
--   
--   <i>See:</i> <a>templatePatch</a> smart constructor.
data TemplatePatch

-- | Identifier for the template that is being updated
tppTemplateId :: Lens' TemplatePatch Int32

-- | Multipart request metadata.
tppPayload :: Lens' TemplatePatch Template

-- | Table to which the updated template belongs
tppTableId :: Lens' TemplatePatch Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.Patch.TemplatePatch
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.Patch.TemplatePatch
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.Patch.TemplatePatch
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.Patch.TemplatePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.Patch.TemplatePatch


-- | Updates an existing template
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a> for
--   <tt>fusiontables.template.update</tt>.
module Network.Google.Resource.FusionTables.Template.Update

-- | A resource alias for <tt>fusiontables.template.update</tt> method
--   which the <a>TemplateUpdate</a> request conforms to.
type TemplateUpdateResource = "fusiontables" :> ("v2" :> ("tables" :> (Capture "tableId" Text :> ("templates" :> (Capture "templateId" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Template :> Put '[JSON] Template)))))))

-- | Creates a value of <a>TemplateUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tuTemplateId</a></li>
--   <li><a>tuPayload</a></li>
--   <li><a>tuTableId</a></li>
--   </ul>
templateUpdate :: Int32 -> Template -> Text -> TemplateUpdate

-- | Updates an existing template
--   
--   <i>See:</i> <a>templateUpdate</a> smart constructor.
data TemplateUpdate

-- | Identifier for the template that is being updated
tuTemplateId :: Lens' TemplateUpdate Int32

-- | Multipart request metadata.
tuPayload :: Lens' TemplateUpdate Template

-- | Table to which the updated template belongs
tuTableId :: Lens' TemplateUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.FusionTables.Template.Update.TemplateUpdate
instance Data.Data.Data Network.Google.Resource.FusionTables.Template.Update.TemplateUpdate
instance GHC.Show.Show Network.Google.Resource.FusionTables.Template.Update.TemplateUpdate
instance GHC.Classes.Eq Network.Google.Resource.FusionTables.Template.Update.TemplateUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.FusionTables.Template.Update.TemplateUpdate


-- | API for working with Fusion Tables data.
--   
--   <i>See:</i> <a>Fusion Tables API Reference</a>
module Network.Google.FusionTables

-- | Default request referring to version <tt>v2</tt> of the Fusion Tables
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
fusionTablesService :: ServiceConfig

-- | View your Fusion Tables
fusionTablesReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/fusiontables.readonly"]

-- | Manage your Fusion Tables
fusionTablesScope :: Proxy '["https://www.googleapis.com/auth/fusiontables"]

-- | Represents the entirety of the methods and resources available for the
--   Fusion Tables API service.
type FusionTablesAPI = StyleInsertResource :<|> (StyleListResource :<|> (StylePatchResource :<|> (StyleGetResource :<|> (StyleDeleteResource :<|> (StyleUpdateResource :<|> (QuerySQLGetResource :<|> (QuerySQLResource :<|> (TaskListResource :<|> (TaskGetResource :<|> (TaskDeleteResource :<|> (TemplateInsertResource :<|> (TemplateListResource :<|> (TemplatePatchResource :<|> (TemplateGetResource :<|> (TemplateDeleteResource :<|> (TemplateUpdateResource :<|> (ColumnInsertResource :<|> (ColumnListResource :<|> (ColumnPatchResource :<|> (ColumnGetResource :<|> (ColumnDeleteResource :<|> (ColumnUpdateResource :<|> (TableInsertResource :<|> (TableListResource :<|> (TableCopyResource :<|> (TableReplaceRowsResource :<|> (TableImportTableResource :<|> (TablePatchResource :<|> (TableGetResource :<|> (TableImportRowsResource :<|> (TableDeleteResource :<|> TableUpdateResource)))))))))))))))))))))))))))))))

-- | Represents a list of columns in a table.
--   
--   <i>See:</i> <a>columnList</a> smart constructor.
data ColumnList

-- | Creates a value of <a>ColumnList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clTotalItems</a></li>
--   <li><a>clNextPageToken</a></li>
--   <li><a>clKind</a></li>
--   <li><a>clItems</a></li>
--   </ul>
columnList :: ColumnList

-- | Total number of columns for the table.
clTotalItems :: Lens' ColumnList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
clNextPageToken :: Lens' ColumnList (Maybe Text)

-- | The kind of item this is. For a column list, this is always
--   fusiontables#columnList.
clKind :: Lens' ColumnList Text

-- | List of all requested columns.
clItems :: Lens' ColumnList [Column]

-- | Represents a list of tables.
--   
--   <i>See:</i> <a>tableList</a> smart constructor.
data TableList

-- | Creates a value of <a>TableList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlNextPageToken</a></li>
--   <li><a>tlKind</a></li>
--   <li><a>tlItems</a></li>
--   </ul>
tableList :: TableList

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
tlNextPageToken :: Lens' TableList (Maybe Text)

-- | The kind of item this is. For table list, this is always
--   fusiontables#tableList.
tlKind :: Lens' TableList Text

-- | List of all requested tables.
tlItems :: Lens' TableList [Table]

-- | Represents a StyleFunction within a StyleSetting
--   
--   <i>See:</i> <a>styleFunction</a> smart constructor.
data StyleFunction

-- | Creates a value of <a>StyleFunction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfBuckets</a></li>
--   <li><a>sfKind</a></li>
--   <li><a>sfGradient</a></li>
--   <li><a>sfColumnName</a></li>
--   </ul>
styleFunction :: StyleFunction

-- | Bucket function that assigns a style based on the range a column value
--   falls into.
sfBuckets :: Lens' StyleFunction [Bucket]

-- | 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.
sfKind :: Lens' StyleFunction (Maybe Text)

-- | Gradient function that interpolates a range of colors based on column
--   value.
sfGradient :: Lens' StyleFunction (Maybe StyleFunctionGradient)

-- | Name of the column whose value is used in the style.
sfColumnName :: Lens' StyleFunction (Maybe Text)

-- | Identifier of the base column. If present, this column is derived from
--   the specified base column.
--   
--   <i>See:</i> <a>columnBaseColumn</a> smart constructor.
data ColumnBaseColumn

-- | Creates a value of <a>ColumnBaseColumn</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbcTableIndex</a></li>
--   <li><a>cbcColumnId</a></li>
--   </ul>
columnBaseColumn :: ColumnBaseColumn

-- | Offset to the entry in the list of base tables in the table
--   definition.
cbcTableIndex :: Lens' ColumnBaseColumn (Maybe Int32)

-- | The id of the column in the base table from which this column is
--   derived.
cbcColumnId :: Lens' ColumnBaseColumn (Maybe Int32)

-- | Represents a response to a SQL statement.
--   
--   <i>See:</i> <a>sQLresponse</a> smart constructor.
data SQLresponse

-- | Creates a value of <a>SQLresponse</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sqlKind</a></li>
--   <li><a>sqlRows</a></li>
--   <li><a>sqlColumns</a></li>
--   </ul>
sQLresponse :: SQLresponse

-- | The kind of item this is. For responses to SQL queries, this is always
--   fusiontables#sqlresponse.
sqlKind :: Lens' SQLresponse Text

-- | The rows in the table. For each cell we print out whatever cell value
--   (e.g., numeric, string) exists. Thus it is important that each cell
--   contains only one value.
sqlRows :: Lens' SQLresponse [[JSONValue]]

-- | Columns in the table.
sqlColumns :: Lens' SQLresponse [Text]
data StyleFunctionGradientColorsItem

-- | Creates a value of <a>StyleFunctionGradientColorsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfgciColor</a></li>
--   <li><a>sfgciOpacity</a></li>
--   </ul>
styleFunctionGradientColorsItem :: StyleFunctionGradientColorsItem

-- | Color in #RRGGBB format.
sfgciColor :: Lens' StyleFunctionGradientColorsItem (Maybe Text)

-- | Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
sfgciOpacity :: Lens' StyleFunctionGradientColorsItem (Maybe Double)

-- | Represents a list of styles for a given table.
--   
--   <i>See:</i> <a>styleSettingList</a> smart constructor.
data StyleSettingList

-- | Creates a value of <a>StyleSettingList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sslTotalItems</a></li>
--   <li><a>sslNextPageToken</a></li>
--   <li><a>sslKind</a></li>
--   <li><a>sslItems</a></li>
--   </ul>
styleSettingList :: StyleSettingList

-- | Total number of styles for the table.
sslTotalItems :: Lens' StyleSettingList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more styles left.
sslNextPageToken :: Lens' StyleSettingList (Maybe Text)

-- | The kind of item this is. For a style list, this is always
--   fusiontables#styleSettingList .
sslKind :: Lens' StyleSettingList Text

-- | All requested style settings.
sslItems :: Lens' StyleSettingList [StyleSetting]

-- | Specifies the minimum and maximum values, the color, opacity, icon and
--   weight of a bucket within a StyleSetting.
--   
--   <i>See:</i> <a>bucket</a> smart constructor.
data Bucket

-- | Creates a value of <a>Bucket</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bMax</a></li>
--   <li><a>bColor</a></li>
--   <li><a>bWeight</a></li>
--   <li><a>bIcon</a></li>
--   <li><a>bOpacity</a></li>
--   <li><a>bMin</a></li>
--   </ul>
bucket :: Bucket

-- | Maximum value in the selected column for a row to be styled according
--   to the bucket color, opacity, icon, or weight.
bMax :: Lens' Bucket (Maybe Double)

-- | Color of line or the interior of a polygon in #RRGGBB format.
bColor :: Lens' Bucket (Maybe Text)

-- | Width of a line (in pixels).
bWeight :: Lens' Bucket (Maybe Int32)

-- | Icon name used for a point.
bIcon :: Lens' Bucket (Maybe Text)

-- | Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
bOpacity :: Lens' Bucket (Maybe Double)

-- | Minimum value in the selected column for a row to be styled according
--   to the bucket color, opacity, icon, or weight.
bMin :: Lens' Bucket (Maybe Double)

-- | Represents a line geometry.
--   
--   <i>See:</i> <a>line</a> smart constructor.
data Line

-- | Creates a value of <a>Line</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lCoordinates</a></li>
--   <li><a>lType</a></li>
--   </ul>
line :: Line

-- | The coordinates that define the line.
lCoordinates :: Lens' Line [[Double]]

-- | Type: A line geometry.
lType :: Lens' Line Text

-- | Represents a complete StyleSettings object. The primary key is a
--   combination of the tableId and a styleId.
--   
--   <i>See:</i> <a>styleSetting</a> smart constructor.
data StyleSetting

-- | Creates a value of <a>StyleSetting</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssPolylineOptions</a></li>
--   <li><a>ssPolygonOptions</a></li>
--   <li><a>ssMarkerOptions</a></li>
--   <li><a>ssKind</a></li>
--   <li><a>ssName</a></li>
--   <li><a>ssStyleId</a></li>
--   <li><a>ssTableId</a></li>
--   </ul>
styleSetting :: StyleSetting

-- | Style definition for lines in the table.
ssPolylineOptions :: Lens' StyleSetting (Maybe LineStyle)

-- | Style definition for polygons in the table.
ssPolygonOptions :: Lens' StyleSetting (Maybe PolygonStyle)

-- | Style definition for points in the table.
ssMarkerOptions :: Lens' StyleSetting (Maybe PointStyle)

-- | The kind of item this is. A StyleSetting contains the style
--   definitions 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.
ssKind :: Lens' StyleSetting Text

-- | Optional name for the style setting.
ssName :: Lens' StyleSetting (Maybe Text)

-- | Identifier for the style setting (unique only within tables).
ssStyleId :: Lens' StyleSetting (Maybe Int32)

-- | Identifier for the table.
ssTableId :: Lens' StyleSetting (Maybe Text)

-- | Represents a point object.
--   
--   <i>See:</i> <a>point</a> smart constructor.
data Point

-- | Creates a value of <a>Point</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pCoordinates</a></li>
--   <li><a>pType</a></li>
--   </ul>
point :: Point

-- | The coordinates that define the point.
pCoordinates :: Lens' Point [Double]

-- | Point: A point geometry.
pType :: Lens' Point Text

-- | Represents a polygon object.
--   
--   <i>See:</i> <a>polygon</a> smart constructor.
data Polygon

-- | Creates a value of <a>Polygon</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>polCoordinates</a></li>
--   <li><a>polType</a></li>
--   </ul>
polygon :: Polygon

-- | The coordinates that define the polygon.
polCoordinates :: Lens' Polygon [[[Double]]]

-- | Type: A polygon geometry.
polType :: Lens' Polygon Text

-- | Represents a list of tasks for a table.
--   
--   <i>See:</i> <a>taskList</a> smart constructor.
data TaskList

-- | Creates a value of <a>TaskList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTotalItems</a></li>
--   <li><a>tNextPageToken</a></li>
--   <li><a>tKind</a></li>
--   <li><a>tItems</a></li>
--   </ul>
taskList :: TaskList

-- | Total number of tasks for the table.
tTotalItems :: Lens' TaskList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
tNextPageToken :: Lens' TaskList (Maybe Text)

-- | Type of the resource. This is always "fusiontables#taskList".
tKind :: Lens' TaskList Text

-- | List of all requested tasks.
tItems :: Lens' TaskList [Task]

-- | Represents a Geometry object.
--   
--   <i>See:</i> <a>geometry</a> smart constructor.
data Geometry

-- | Creates a value of <a>Geometry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gGeometries</a></li>
--   <li><a>gGeometry</a></li>
--   <li><a>gType</a></li>
--   </ul>
geometry :: Geometry

-- | The list of geometries in this geometry collection.
gGeometries :: Lens' Geometry [JSONValue]
gGeometry :: Lens' Geometry (Maybe JSONValue)

-- | Type: A collection of geometries.
gType :: Lens' Geometry Text

-- | Represents a list of templates for a given table.
--   
--   <i>See:</i> <a>templateList</a> smart constructor.
data TemplateList

-- | Creates a value of <a>TemplateList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>temTotalItems</a></li>
--   <li><a>temNextPageToken</a></li>
--   <li><a>temKind</a></li>
--   <li><a>temItems</a></li>
--   </ul>
templateList :: TemplateList

-- | Total number of templates for the table.
temTotalItems :: Lens' TemplateList (Maybe Int32)

-- | Token used to access the next page of this result. No token is
--   displayed if there are no more pages left.
temNextPageToken :: Lens' TemplateList (Maybe Text)

-- | The kind of item this is. For a template list, this is always
--   fusiontables#templateList .
temKind :: Lens' TemplateList Text

-- | List of all requested templates.
temItems :: Lens' TemplateList [Template]

-- | Represents an import request.
--   
--   <i>See:</i> <a>import'</a> smart constructor.
data Import

-- | Creates a value of <a>Import</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iKind</a></li>
--   <li><a>iNumRowsReceived</a></li>
--   </ul>
import' :: Import

-- | The kind of item this is. For an import, this is always
--   fusiontables#import.
iKind :: Lens' Import Text

-- | The number of rows received from the import request.
iNumRowsReceived :: Lens' Import (Maybe Int64)

-- | A background task on a table, initiated for time- or
--   resource-consuming operations such as changing column types or
--   deleting all rows.
--   
--   <i>See:</i> <a>task</a> smart constructor.
data Task

-- | Creates a value of <a>Task</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tasProgress</a></li>
--   <li><a>tasTaskId</a></li>
--   <li><a>tasKind</a></li>
--   <li><a>tasType</a></li>
--   <li><a>tasStarted</a></li>
--   </ul>
task :: Task

-- | Task percentage completion.
tasProgress :: Lens' Task (Maybe Text)

-- | Identifier for the task.
tasTaskId :: Lens' Task (Maybe Int64)

-- | Type of the resource. This is always "fusiontables#task".
tasKind :: Lens' Task Text

-- | Type of background task.
tasType :: Lens' Task (Maybe Text)

-- | false while the table is busy with some other task. true if this
--   background task is currently running.
tasStarted :: Lens' Task (Maybe Bool)

-- | Represents the contents of InfoWindow templates.
--   
--   <i>See:</i> <a>template</a> smart constructor.
data Template

-- | Creates a value of <a>Template</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ttAutomaticColumnNames</a></li>
--   <li><a>ttTemplateId</a></li>
--   <li><a>ttKind</a></li>
--   <li><a>ttBody</a></li>
--   <li><a>ttName</a></li>
--   <li><a>ttTableId</a></li>
--   </ul>
template :: Template

-- | List of columns from which the template is to be automatically
--   constructed. Only one of body or automaticColumns can be specified.
ttAutomaticColumnNames :: Lens' Template [Text]

-- | Identifier for the template, unique within the context of a particular
--   table.
ttTemplateId :: Lens' Template (Maybe Int32)

-- | The kind of item this is. For a template, this is always
--   fusiontables#template.
ttKind :: Lens' Template Text

-- | Body of the template. It contains HTML with {column_name} to insert
--   values from a particular column. The body is sanitized to remove
--   certain tags, e.g., script. Only one of body or automaticColumns can
--   be specified.
ttBody :: Lens' Template (Maybe Text)

-- | Optional name assigned to a template.
ttName :: Lens' Template (Maybe Text)

-- | Identifier for the table for which the template is defined.
ttTableId :: Lens' Template (Maybe Text)

-- | Represents a PointStyle within a StyleSetting
--   
--   <i>See:</i> <a>pointStyle</a> smart constructor.
data PointStyle

-- | Creates a value of <a>PointStyle</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psIconName</a></li>
--   <li><a>psIconStyler</a></li>
--   </ul>
pointStyle :: PointStyle

-- | Name of the icon. Use values defined in
--   http://www.google.com/fusiontables/DataSource?dsrcid=308519
psIconName :: Lens' PointStyle (Maybe Text)

-- | Column or a bucket value from which the icon name is to be determined.
psIconStyler :: Lens' PointStyle (Maybe StyleFunction)

-- | Represents a PolygonStyle within a StyleSetting
--   
--   <i>See:</i> <a>polygonStyle</a> smart constructor.
data PolygonStyle

-- | Creates a value of <a>PolygonStyle</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psFillColorStyler</a></li>
--   <li><a>psFillColor</a></li>
--   <li><a>psStrokeColorStyler</a></li>
--   <li><a>psStrokeWeight</a></li>
--   <li><a>psStrokeOpacity</a></li>
--   <li><a>psFillOpacity</a></li>
--   <li><a>psStrokeWeightStyler</a></li>
--   <li><a>psStrokeColor</a></li>
--   </ul>
polygonStyle :: PolygonStyle

-- | Column-value, gradient, or bucket styler that is used to determine the
--   interior color and opacity of the polygon.
psFillColorStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Color of the interior of the polygon in #RRGGBB format.
psFillColor :: Lens' PolygonStyle (Maybe Text)

-- | Column-value, gradient or buckets styler that is used to determine the
--   border color and opacity.
psStrokeColorStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Width of the polyon border in pixels.
psStrokeWeight :: Lens' PolygonStyle (Maybe Int32)

-- | Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
psStrokeOpacity :: Lens' PolygonStyle (Maybe Double)

-- | Opacity of the interior of the polygon: 0.0 (transparent) to 1.0
--   (opaque).
psFillOpacity :: Lens' PolygonStyle (Maybe Double)

-- | Column-value or bucket styler that is used to determine the width of
--   the polygon border.
psStrokeWeightStyler :: Lens' PolygonStyle (Maybe StyleFunction)

-- | Color of the polygon border in #RRGGBB format.
psStrokeColor :: Lens' PolygonStyle (Maybe Text)

-- | Gradient function that interpolates a range of colors based on column
--   value.
--   
--   <i>See:</i> <a>styleFunctionGradient</a> smart constructor.
data StyleFunctionGradient

-- | Creates a value of <a>StyleFunctionGradient</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfgMax</a></li>
--   <li><a>sfgMin</a></li>
--   <li><a>sfgColors</a></li>
--   </ul>
styleFunctionGradient :: StyleFunctionGradient

-- | Higher-end of the interpolation range: rows with this value will be
--   assigned to colors[n-1].
sfgMax :: Lens' StyleFunctionGradient (Maybe Double)

-- | Lower-end of the interpolation range: rows with this value will be
--   assigned to colors[0].
sfgMin :: Lens' StyleFunctionGradient (Maybe Double)

-- | Array with two or more colors.
sfgColors :: Lens' StyleFunctionGradient [StyleFunctionGradientColorsItem]

-- | Specifies the details of a column in a table.
--   
--   <i>See:</i> <a>column</a> smart constructor.
data Column

-- | Creates a value of <a>Column</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cColumnJSONSchema</a></li>
--   <li><a>cGraphPredicate</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cBaseColumn</a></li>
--   <li><a>cColumnPropertiesJSON</a></li>
--   <li><a>cName</a></li>
--   <li><a>cType</a></li>
--   <li><a>cFormatPattern</a></li>
--   <li><a>cColumnId</a></li>
--   <li><a>cValidValues</a></li>
--   <li><a>cValidateData</a></li>
--   <li><a>cDescription</a></li>
--   </ul>
column :: Column

-- | JSON schema for interpreting JSON in this column.
cColumnJSONSchema :: Lens' Column (Maybe Text)

-- | Column graph predicate. Used to map table to graph data model
--   (subject,predicate,object) See W3C Graph-based Data Model.
cGraphPredicate :: Lens' Column (Maybe Text)

-- | The kind of item this is. For a column, this is always
--   fusiontables#column.
cKind :: Lens' Column Text

-- | Identifier of the base column. If present, this column is derived from
--   the specified base column.
cBaseColumn :: Lens' Column (Maybe ColumnBaseColumn)

-- | JSON object containing custom column properties.
cColumnPropertiesJSON :: Lens' Column (Maybe Text)

-- | Name of the column.
cName :: Lens' Column (Maybe Text)

-- | Type of the column.
cType :: Lens' Column (Maybe Text)

-- | Format pattern. Acceptable values are DT_DATE_MEDIUMe.g Dec 24, 2008
--   DT_DATE_SHORTfor example 12/24/08 DT_DATE_TIME_MEDIUMfor example Dec
--   24, 2008 8:30:45 PM DT_DATE_TIME_SHORTfor example 12/24/08 8:30 PM
--   DT_DAY_MONTH_2_DIGIT_YEARfor example 24/12/08
--   DT_DAY_MONTH_2_DIGIT_YEAR_TIMEfor example 24/12/08 20:30
--   DT_DAY_MONTH_2_DIGIT_YEAR_TIME_MERIDIANfor example 24/12/08 8:30 PM
--   DT_DAY_MONTH_4_DIGIT_YEARfor example 24/12/2008
--   DT_DAY_MONTH_4_DIGIT_YEAR_TIMEfor example 24/12/2008 20:30
--   DT_DAY_MONTH_4_DIGIT_YEAR_TIME_MERIDIANfor example 24/12/2008 8:30 PM
--   DT_ISO_YEAR_MONTH_DAYfor example 2008-12-24
--   DT_ISO_YEAR_MONTH_DAY_TIMEfor example 2008-12-24 20:30:45
--   DT_MONTH_DAY_4_DIGIT_YEARfor example 12/24/2008 DT_TIME_LONGfor
--   example 8:30:45 PM UTC-6 DT_TIME_MEDIUMfor example 8:30:45 PM
--   DT_TIME_SHORTfor example 8:30 PM DT_YEAR_ONLYfor example 2008
--   HIGHLIGHT_UNTYPED_CELLSHighlight cell data that does not match the
--   data type NONENo formatting (default) NUMBER_CURRENCYfor example
--   $1234.56 NUMBER_DEFAULTfor example 1,234.56 NUMBER_INTEGERfor example
--   1235 NUMBER_NO_SEPARATORfor example 1234.56 NUMBER_PERCENTfor example
--   123,456% NUMBER_SCIENTIFICfor example 1E3
--   STRING_EIGHT_LINE_IMAGEDisplays thumbnail images as tall as eight
--   lines of text STRING_FOUR_LINE_IMAGEDisplays thumbnail images as tall
--   as four lines of text STRING_JSON_TEXTAllows editing of text as JSON
--   in UI STRING_JSON_LISTAllows editing of text as a JSON list in UI
--   STRING_LINKTreats cell as a link (must start with http:// or https://)
--   STRING_ONE_LINE_IMAGEDisplays thumbnail images as tall as one line of
--   text STRING_VIDEO_OR_MAPDisplay a video or map thumbnail
cFormatPattern :: Lens' Column (Maybe Text)

-- | Identifier for the column.
cColumnId :: Lens' Column (Maybe Int32)

-- | List of valid values used to validate data and supply a drop-down list
--   of values in the web application.
cValidValues :: Lens' Column [Text]

-- | If true, data entered via the web application is validated.
cValidateData :: Lens' Column (Maybe Bool)

-- | Column description.
cDescription :: Lens' Column (Maybe Text)

-- | Represents a table.
--   
--   <i>See:</i> <a>table</a> smart constructor.
data Table

-- | Creates a value of <a>Table</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tabaIsExportable</a></li>
--   <li><a>tabaKind</a></li>
--   <li><a>tabaColumnPropertiesJSONSchema</a></li>
--   <li><a>tabaTablePropertiesJSONSchema</a></li>
--   <li><a>tabaName</a></li>
--   <li><a>tabaTablePropertiesJSON</a></li>
--   <li><a>tabaColumns</a></li>
--   <li><a>tabaBaseTableIds</a></li>
--   <li><a>tabaTableId</a></li>
--   <li><a>tabaSQL</a></li>
--   <li><a>tabaDescription</a></li>
--   <li><a>tabaAttribution</a></li>
--   <li><a>tabaAttributionLink</a></li>
--   </ul>
table :: Table

-- | Variable for whether table is exportable.
tabaIsExportable :: Lens' Table (Maybe Bool)

-- | The kind of item this is. For a table, this is always
--   fusiontables#table.
tabaKind :: Lens' Table Text

-- | Default JSON schema for validating all JSON column properties.
tabaColumnPropertiesJSONSchema :: Lens' Table (Maybe Text)

-- | JSON schema for validating the JSON table properties.
tabaTablePropertiesJSONSchema :: Lens' Table (Maybe Text)

-- | Name assigned to a table.
tabaName :: Lens' Table (Maybe Text)

-- | JSON object containing custom table properties.
tabaTablePropertiesJSON :: Lens' Table (Maybe Text)

-- | Columns in the table.
tabaColumns :: Lens' Table [Column]

-- | Base table identifier if this table is a view or merged table.
tabaBaseTableIds :: Lens' Table [Text]

-- | Encrypted unique alphanumeric identifier for the table.
tabaTableId :: Lens' Table (Maybe Text)

-- | SQL that encodes the table definition for derived tables.
tabaSQL :: Lens' Table (Maybe Text)

-- | Description assigned to the table.
tabaDescription :: Lens' Table (Maybe Text)

-- | Attribution assigned to the table.
tabaAttribution :: Lens' Table (Maybe Text)

-- | Optional link for attribution.
tabaAttributionLink :: Lens' Table (Maybe Text)

-- | Represents a LineStyle within a StyleSetting
--   
--   <i>See:</i> <a>lineStyle</a> smart constructor.
data LineStyle

-- | Creates a value of <a>LineStyle</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsStrokeColorStyler</a></li>
--   <li><a>lsStrokeWeight</a></li>
--   <li><a>lsStrokeOpacity</a></li>
--   <li><a>lsStrokeWeightStyler</a></li>
--   <li><a>lsStrokeColor</a></li>
--   </ul>
lineStyle :: LineStyle

-- | Column-value, gradient or buckets styler that is used to determine the
--   line color and opacity.
lsStrokeColorStyler :: Lens' LineStyle (Maybe StyleFunction)

-- | Width of the line in pixels.
lsStrokeWeight :: Lens' LineStyle (Maybe Int32)

-- | Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
lsStrokeOpacity :: Lens' LineStyle (Maybe Double)

-- | Column-value or bucket styler that is used to determine the width of
--   the line.
lsStrokeWeightStyler :: Lens' LineStyle (Maybe StyleFunction)

-- | Color of the line in #RRGGBB format.
lsStrokeColor :: Lens' LineStyle (Maybe Text)
