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


-- | Google Maps Engine SDK.
--   
--   The Google Maps Engine API allows developers to store and query
--   geospatial vector and raster 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>v1</tt> of the API.
@package gogol-maps-engine
@version 0.3.0


module Network.Google.MapsEngine.Types

-- | Default request referring to version <tt>v1</tt> of the Google Maps
--   Engine API. This contains the host and root path used as a starting
--   point for constructing service requests.
mapsEngineService :: ServiceConfig

-- | View and manage your Google My Maps data
mapsEngineScope :: Proxy '["https://www.googleapis.com/auth/mapsengine"]

-- | View your Google My Maps data
mapsEngineReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/mapsengine.readonly"]

-- | Range of values used for scaling shapes. The min/max values will be
--   drawn as shapes with the min/max size.
--   
--   <i>See:</i> <a>valueRange</a> smart constructor.
data ValueRange

-- | Creates a value of <a>ValueRange</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>vrMax</a></li>
--   <li><a>vrMin</a></li>
--   </ul>
valueRange :: ValueRange

-- | Maximum value.
vrMax :: Lens' ValueRange (Maybe Double)

-- | Minimum value.
vrMin :: Lens' ValueRange (Maybe Double)

-- | The properties associated with a feature.
--   
--   <i>See:</i> <a>geoJSONProperties</a> smart constructor.
data GeoJSONProperties

-- | Creates a value of <a>GeoJSONProperties</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>gjpAddtional</a></li>
--   </ul>
geoJSONProperties :: HashMap Text JSONValue -> GeoJSONProperties

-- | An arbitrary key-value pair. The key must be the name of a column in
--   the table's schema, and the type of the value must correspond to the
--   type specified in the schema.
gjpAddtional :: Lens' GeoJSONProperties (HashMap Text JSONValue)

-- | A feature within a table.
--   
--   <i>See:</i> <a>feature</a> smart constructor.
data Feature

-- | Creates a value of <a>Feature</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>fGeometry</a></li>
--   <li><a>fType</a></li>
--   <li><a>fProperties</a></li>
--   </ul>
feature :: Feature

-- | The geometry member of this Feature.
fGeometry :: Lens' Feature (Maybe GeoJSONGeometry)

-- | Identifies this object as a feature.
fType :: Lens' Feature Text

-- | Key/value pairs of this Feature.
fProperties :: Lens' Feature (Maybe GeoJSONProperties)

-- | A list of the parents of an asset.
--   
--   <i>See:</i> <a>parent</a> smart constructor.
data Parent

-- | Creates a value of <a>Parent</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>pId</a></li>
--   </ul>
parent :: Parent

-- | The ID of this parent.
pId :: Lens' Parent (Maybe Text)

-- | The request sent to features.BatchPatch.
--   
--   <i>See:</i> <a>featuresBatchPatchRequest</a> smart constructor.
data FeaturesBatchPatchRequest

-- | Creates a value of <a>FeaturesBatchPatchRequest</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>fbprFeatures</a></li>
--   <li><a>fbprNormalizeGeometries</a></li>
--   </ul>
featuresBatchPatchRequest :: FeaturesBatchPatchRequest
fbprFeatures :: Lens' FeaturesBatchPatchRequest [Feature]

-- | If true, the server will normalize feature geometries. It is assumed
--   that the South Pole is exterior to any polygons given. See here for a
--   list of normalizations. If false, all feature geometries must be given
--   already normalized. The points in all LinearRings must be listed in
--   counter-clockwise order, and LinearRings may not intersect.
fbprNormalizeGeometries :: Lens' FeaturesBatchPatchRequest Bool

-- | The request sent to mapsengine.permissions.batchUpdate.
--   
--   <i>See:</i> <a>permissionsBatchUpdateRequest</a> smart constructor.
data PermissionsBatchUpdateRequest

-- | Creates a value of <a>PermissionsBatchUpdateRequest</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>pburPermissions</a></li>
--   </ul>
permissionsBatchUpdateRequest :: PermissionsBatchUpdateRequest

-- | The permissions to be inserted or updated.
pburPermissions :: Lens' PermissionsBatchUpdateRequest [Permission]

-- | The processing status of this Raster.
data RasterProcessingStatus

-- | <pre>
--   complete
--   </pre>
Complete :: RasterProcessingStatus

-- | <pre>
--   failed
--   </pre>
Failed :: RasterProcessingStatus

-- | <pre>
--   notReady
--   </pre>
NotReady :: RasterProcessingStatus

-- | <pre>
--   processing
--   </pre>
Processing :: RasterProcessingStatus

-- | <pre>
--   ready
--   </pre>
Ready :: RasterProcessingStatus

-- | The processing status of this layer.
data LayerProcessingStatus

-- | <pre>
--   complete
--   </pre>
LPSComplete :: LayerProcessingStatus

-- | <pre>
--   failed
--   </pre>
LPSFailed :: LayerProcessingStatus

-- | <pre>
--   notReady
--   </pre>
LPSNotReady :: LayerProcessingStatus

-- | <pre>
--   processing
--   </pre>
LPSProcessing :: LayerProcessingStatus

-- | <pre>
--   ready
--   </pre>
LPSReady :: LayerProcessingStatus

-- | Name of the shape.
data ScaledShapeShape

-- | <pre>
--   circle
--   </pre>
Circle :: ScaledShapeShape

-- | The request sent to mapsengine.permissions.batchDelete.
--   
--   <i>See:</i> <a>permissionsBatchDeleteRequest</a> smart constructor.
data PermissionsBatchDeleteRequest

-- | Creates a value of <a>PermissionsBatchDeleteRequest</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>pbdrIds</a></li>
--   </ul>
permissionsBatchDeleteRequest :: PermissionsBatchDeleteRequest

-- | An array of permission ids to be removed. This could be the email
--   address of the user or group this permission refers to, or the string
--   "anyone" for public permissions.
pbdrIds :: Lens' PermissionsBatchDeleteRequest [Text]

-- | The response returned by a call to raster_collections.List. Note: The
--   list response does not include all the fields available in a raster
--   collection. Refer to the RasterCollection resource description for
--   details of the fields that are not included. You'll need to send a get
--   request to retrieve the additional fields for each raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsListResponse</a> smart constructor.
data RasterCollectionsListResponse

-- | Creates a value of <a>RasterCollectionsListResponse</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>rclrNextPageToken</a></li>
--   <li><a>rclrRasterCollections</a></li>
--   </ul>
rasterCollectionsListResponse :: RasterCollectionsListResponse

-- | Next page token.
rclrNextPageToken :: Lens' RasterCollectionsListResponse (Maybe ByteString)

-- | Resources returned.
rclrRasterCollections :: Lens' RasterCollectionsListResponse [RasterCollection]

-- | Identifies this object as a GeoJsonMultiLineString.
data GeoJSONMultiLineStringType

-- | <pre>
--   MultiLineString
--   </pre>
MultiLineString :: GeoJSONMultiLineStringType

-- | The type of access granted to this user or group.
data PermissionRole

-- | <pre>
--   owner
--   </pre>
Owner :: PermissionRole

-- | <pre>
--   reader
--   </pre>
Reader :: PermissionRole

-- | <pre>
--   viewer
--   </pre>
Viewer :: PermissionRole

-- | <pre>
--   writer
--   </pre>
Writer :: PermissionRole

-- | The response returned by a call to projects.List.
--   
--   <i>See:</i> <a>projectsListResponse</a> smart constructor.
data ProjectsListResponse

-- | Creates a value of <a>ProjectsListResponse</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>plrProjects</a></li>
--   </ul>
projectsListResponse :: ProjectsListResponse

-- | Projects returned.
plrProjects :: Lens' ProjectsListResponse [Project]
data GeoJSONGeometry

-- | Creates a value of <a>GeoJSONGeometry</a> with the minimum fields
--   required to make a request.
geoJSONGeometry :: GeoJSONGeometry
data MapLayer

-- | Creates a value of <a>MapLayer</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>mlDefaultViewport</a></li>
--   <li><a>mlVisibility</a></li>
--   <li><a>mlKey</a></li>
--   <li><a>mlName</a></li>
--   <li><a>mlId</a></li>
--   <li><a>mlType</a></li>
--   </ul>
mapLayer :: MapLayer

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mlDefaultViewport :: Lens' MapLayer [Double]

-- | The visibility setting of this MapLayer. One of "defaultOn" or
--   "defaultOff".
mlVisibility :: Lens' MapLayer (Maybe Text)

-- | A user defined alias for this MapLayer, specific to this Map.
mlKey :: Lens' MapLayer (Maybe Text)

-- | The name of this MapLayer.
mlName :: Lens' MapLayer (Maybe Text)

-- | The ID of this MapLayer. This ID can be used to request more details
--   about the layer.
mlId :: Lens' MapLayer (Maybe Text)

-- | Identifies this object as a MapLayer.
mlType :: Lens' MapLayer (Maybe MapLayerType)

-- | Zoom level range. Zoom levels are restricted between 0 and 24,
--   inclusive.
--   
--   <i>See:</i> <a>zoomLevels</a> smart constructor.
data ZoomLevels

-- | Creates a value of <a>ZoomLevels</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>zlMax</a></li>
--   <li><a>zlMin</a></li>
--   </ul>
zoomLevels :: ZoomLevels

-- | Maximum zoom level.
zlMax :: Lens' ZoomLevels (Maybe Int32)

-- | Minimum zoom level.
zlMin :: Lens' ZoomLevels (Maybe Int32)

-- | A feature info contains information about individual feature.
--   
--   <i>See:</i> <a>featureInfo</a> smart constructor.
data FeatureInfo

-- | Creates a value of <a>FeatureInfo</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>fiContent</a></li>
--   </ul>
featureInfo :: FeatureInfo

-- | HTML template of the info window. If not provided, a default template
--   with all attributes will be generated.
fiContent :: Lens' FeatureInfo (Maybe Text)

-- | The precision of acquisition time.
data AcquisitionTimePrecision

-- | <pre>
--   day
--   </pre>
Day :: AcquisitionTimePrecision

-- | <pre>
--   hour
--   </pre>
Hour :: AcquisitionTimePrecision

-- | <pre>
--   minute
--   </pre>
Minute :: AcquisitionTimePrecision

-- | <pre>
--   month
--   </pre>
Month :: AcquisitionTimePrecision

-- | <pre>
--   second
--   </pre>
Second :: AcquisitionTimePrecision

-- | <pre>
--   year
--   </pre>
Year :: AcquisitionTimePrecision

-- | Scaled shape size range in pixels. For circles, size corresponds to
--   diameter.
--   
--   <i>See:</i> <a>sizeRange</a> smart constructor.
data SizeRange

-- | Creates a value of <a>SizeRange</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>srMax</a></li>
--   <li><a>srMin</a></li>
--   </ul>
sizeRange :: SizeRange

-- | Maximum size, in pixels.
srMax :: Lens' SizeRange (Maybe Double)

-- | Minimum size, in pixels.
srMin :: Lens' SizeRange (Maybe Double)

-- | The type of scaling function to use. Defaults to SQRT. Currently only
--   linear and square root scaling are supported.
data ScalingFunctionScalingType

-- | <pre>
--   linear
--   </pre>
Linear :: ScalingFunctionScalingType

-- | <pre>
--   sqrt
--   </pre>
Sqrt :: ScalingFunctionScalingType
data MapFolder

-- | Creates a value of <a>MapFolder</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>mfExpandable</a></li>
--   <li><a>mfDefaultViewport</a></li>
--   <li><a>mfContents</a></li>
--   <li><a>mfVisibility</a></li>
--   <li><a>mfKey</a></li>
--   <li><a>mfName</a></li>
--   <li><a>mfType</a></li>
--   </ul>
mapFolder :: MapFolder

-- | The expandability setting of this MapFolder. If true, the folder can
--   be expanded.
mfExpandable :: Lens' MapFolder (Maybe Bool)

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mfDefaultViewport :: Lens' MapFolder [Double]
mfContents :: Lens' MapFolder [MapItem]

-- | The visibility setting of this MapFolder. One of "defaultOn" or
--   "defaultOff".
mfVisibility :: Lens' MapFolder (Maybe Text)

-- | A user defined alias for this MapFolder, specific to this Map.
mfKey :: Lens' MapFolder (Maybe Text)

-- | The name of this MapFolder.
mfName :: Lens' MapFolder (Maybe Text)

-- | Identifies this object as a MapFolder.
mfType :: Lens' MapFolder (Maybe MapFolderType)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data AssetsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
ALROwner :: AssetsListRole

-- | <tt>reader</tt> The user can read the asset.
ALRReader :: AssetsListRole

-- | <tt>writer</tt> The user can read and write the asset.
ALRWriter :: AssetsListRole
data RastersListProcessingStatus

-- | <tt>complete</tt> The raster has completed processing.
RLPSComplete :: RastersListProcessingStatus

-- | <tt>failed</tt> The raster has failed processing.
RLPSFailed :: RastersListProcessingStatus

-- | <tt>notReady</tt> The raster is not ready for processing.
RLPSNotReady :: RastersListProcessingStatus

-- | <tt>processing</tt> The raster is processing.
RLPSProcessing :: RastersListProcessingStatus

-- | <tt>ready</tt> The raster is ready for processing.
RLPSReady :: RastersListProcessingStatus

-- | A Maps Engine project groups a collection of resources.
--   
--   <i>See:</i> <a>project</a> smart constructor.
data Project

-- | Creates a value of <a>Project</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>proName</a></li>
--   <li><a>proId</a></li>
--   </ul>
project :: Project

-- | A user provided name for this Maps Engine project.
proName :: Lens' Project (Maybe Text)

-- | An ID used to refer to this Maps Engine project.
proId :: Lens' Project (Maybe Text)

-- | Basic color used in styling.
--   
--   <i>See:</i> <a>color</a> smart constructor.
data Color

-- | Creates a value of <a>Color</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>cColor</a></li>
--   <li><a>cOpacity</a></li>
--   </ul>
color :: Color

-- | The CSS style color, can be in format of "red" or "#7733EE".
cColor :: Lens' Color (Maybe Text)

-- | Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
cOpacity :: Lens' Color (Maybe Double)
data LayersListProcessingStatus

-- | <tt>complete</tt> The layer has completed processing.
LLPSComplete :: LayersListProcessingStatus

-- | <tt>failed</tt> The layer has failed processing.
LLPSFailed :: LayersListProcessingStatus

-- | <tt>notReady</tt> The layer is not ready for processing.
LLPSNotReady :: LayersListProcessingStatus

-- | <tt>processing</tt> The layer is processing.
LLPSProcessing :: LayersListProcessingStatus

-- | <tt>ready</tt> The layer is ready for processing.
LLPSReady :: LayersListProcessingStatus

-- | A raster collection groups multiple Raster resources for inclusion in
--   a Layer.
--   
--   <i>See:</i> <a>rasterCollection</a> smart constructor.
data RasterCollection

-- | Creates a value of <a>RasterCollection</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>rcCreationTime</a></li>
--   <li><a>rcWritersCanEditPermissions</a></li>
--   <li><a>rcEtag</a></li>
--   <li><a>rcCreatorEmail</a></li>
--   <li><a>rcRasterType</a></li>
--   <li><a>rcLastModifiedTime</a></li>
--   <li><a>rcLastModifierEmail</a></li>
--   <li><a>rcName</a></li>
--   <li><a>rcBbox</a></li>
--   <li><a>rcProcessingStatus</a></li>
--   <li><a>rcMosaic</a></li>
--   <li><a>rcId</a></li>
--   <li><a>rcProjectId</a></li>
--   <li><a>rcDraftAccessList</a></li>
--   <li><a>rcDescription</a></li>
--   <li><a>rcAttribution</a></li>
--   <li><a>rcTags</a></li>
--   </ul>
rasterCollection :: RasterCollection

-- | The creation time of this RasterCollection. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcCreationTime :: Lens' RasterCollection (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
rcWritersCanEditPermissions :: Lens' RasterCollection (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
rcEtag :: Lens' RasterCollection (Maybe Text)

-- | The email address of the creator of this raster collection. This is
--   only returned on GET requests and not LIST requests.
rcCreatorEmail :: Lens' RasterCollection (Maybe Text)

-- | The type of rasters contained within this RasterCollection.
rcRasterType :: Lens' RasterCollection (Maybe RasterCollectionRasterType)

-- | The last modified time of this RasterCollection. The value is an RFC
--   3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcLastModifiedTime :: Lens' RasterCollection (Maybe UTCTime)

-- | The email address of the last modifier of this raster collection. This
--   is only returned on GET requests and not LIST requests.
rcLastModifierEmail :: Lens' RasterCollection (Maybe Text)

-- | The name of this RasterCollection, supplied by the author.
rcName :: Lens' RasterCollection (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   RasterCollection. The box is expressed as \"west, south, east,
--   north\". The numbers represent latitude and longitude in decimal
--   degrees.
rcBbox :: Lens' RasterCollection [Double]

-- | The processing status of this RasterCollection.
rcProcessingStatus :: Lens' RasterCollection (Maybe RasterCollectionProcessingStatus)

-- | True if this RasterCollection is a mosaic.
rcMosaic :: Lens' RasterCollection (Maybe Bool)

-- | A globally unique ID, used to refer to this RasterCollection.
rcId :: Lens' RasterCollection (Maybe Text)

-- | The ID of the project that this RasterCollection is in.
rcProjectId :: Lens' RasterCollection (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
rcDraftAccessList :: Lens' RasterCollection (Maybe Text)

-- | The description of this RasterCollection, supplied by the author.
rcDescription :: Lens' RasterCollection (Maybe Text)

-- | The name of the attribution to be used for this RasterCollection.
--   Note: Attribution is returned in response to a get request but not a
--   list request. After requesting a list of raster collections, you'll
--   need to send a get request to retrieve the attribution for each raster
--   collection.
rcAttribution :: Lens' RasterCollection (Maybe Text)

-- | Tags of this RasterCollection.
rcTags :: Lens' RasterCollection [Text]

-- | Stroke of the line.
--   
--   <i>See:</i> <a>lineStyleStroke</a> smart constructor.
data LineStyleStroke

-- | Creates a value of <a>LineStyleStroke</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>lssColor</a></li>
--   <li><a>lssWidth</a></li>
--   <li><a>lssOpacity</a></li>
--   </ul>
lineStyleStroke :: LineStyleStroke

-- | Color of the line.
lssColor :: Lens' LineStyleStroke (Maybe Text)

-- | Width of the line, in pixels. 0 &lt;= width &lt;= 10. If width is set
--   to 0, the line will be invisible.
lssWidth :: Lens' LineStyleStroke (Maybe Double)

-- | Opacity of the line.
lssOpacity :: Lens' LineStyleStroke (Maybe Double)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RasterCollectionsRastersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RCRLROwner :: RasterCollectionsRastersListRole

-- | <tt>reader</tt> The user can read the asset.
RCRLRReader :: RasterCollectionsRastersListRole

-- | <tt>writer</tt> The user can read and write the asset.
RCRLRWriter :: RasterCollectionsRastersListRole

-- | Identifies this object as a GeoJsonMultiPolygon.
data GeoJSONMultiPolygonType

-- | <pre>
--   MultiPolygon
--   </pre>
MultiPolygon :: GeoJSONMultiPolygonType

-- | Identifies this object as a GeoJsonMultiPoint.
data GeoJSONMultiPointType

-- | <pre>
--   MultiPoint
--   </pre>
MultiPoint :: GeoJSONMultiPointType

-- | The response returned by a call to
--   rasterCollections.rasters.batchDelete.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchDeleteResponse</a> smart
--   constructor.
data RasterCollectionsRastersBatchDeleteResponse

-- | Creates a value of <a>RasterCollectionsRastersBatchDeleteResponse</a>
--   with the minimum fields required to make a request.
rasterCollectionsRastersBatchDeleteResponse :: RasterCollectionsRastersBatchDeleteResponse

-- | The response returned by a call to any asset's Process method.
--   
--   <i>See:</i> <a>processResponse</a> smart constructor.
data ProcessResponse

-- | Creates a value of <a>ProcessResponse</a> with the minimum fields
--   required to make a request.
processResponse :: ProcessResponse
data TableColumn

-- | Creates a value of <a>TableColumn</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>tcName</a></li>
--   <li><a>tcType</a></li>
--   </ul>
tableColumn :: TableColumn

-- | The column name.
tcName :: Lens' TableColumn (Maybe Text)

-- | The type of data stored in this column.
tcType :: Lens' TableColumn (Maybe TableColumnType)

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
data PublishedLayerLayerType

-- | <pre>
--   image
--   </pre>
Image :: PublishedLayerLayerType

-- | <pre>
--   vector
--   </pre>
Vector :: PublishedLayerLayerType
data TablesListProcessingStatus

-- | <tt>complete</tt> The table has completed processing.
TLPSComplete :: TablesListProcessingStatus

-- | <tt>failed</tt> The table has failed processing.
TLPSFailed :: TablesListProcessingStatus

-- | <tt>notReady</tt> The table is not ready for processing.
TLPSNotReady :: TablesListProcessingStatus

-- | <tt>processing</tt> The table is processing.
TLPSProcessing :: TablesListProcessingStatus

-- | <tt>ready</tt> The table is ready for processing.
TLPSReady :: TablesListProcessingStatus

-- | An asset is any Google Maps Engine resource that has a globally unique
--   ID. Assets include maps, layers, vector tables, raster collections,
--   and rasters. Projects and features are not considered assets. More
--   detailed information about an asset can be obtained by querying the
--   asset's particular endpoint.
--   
--   <i>See:</i> <a>asset</a> smart constructor.
data Asset

-- | Creates a value of <a>Asset</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>aCreationTime</a></li>
--   <li><a>aWritersCanEditPermissions</a></li>
--   <li><a>aEtag</a></li>
--   <li><a>aCreatorEmail</a></li>
--   <li><a>aLastModifiedTime</a></li>
--   <li><a>aLastModifierEmail</a></li>
--   <li><a>aName</a></li>
--   <li><a>aBbox</a></li>
--   <li><a>aResource</a></li>
--   <li><a>aId</a></li>
--   <li><a>aProjectId</a></li>
--   <li><a>aType</a></li>
--   <li><a>aDescription</a></li>
--   <li><a>aTags</a></li>
--   </ul>
asset :: Asset

-- | The creation time of this asset. The value is an RFC 3339-formatted
--   date-time value (for example, 1970-01-01T00:00:00Z).
aCreationTime :: Lens' Asset (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
aWritersCanEditPermissions :: Lens' Asset (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
aEtag :: Lens' Asset (Maybe Text)

-- | The email address of the creator of this asset. This is only returned
--   on GET requests and not LIST requests.
aCreatorEmail :: Lens' Asset (Maybe Text)

-- | The last modified time of this asset. The value is an RFC
--   3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
aLastModifiedTime :: Lens' Asset (Maybe UTCTime)

-- | The email address of the last modifier of this asset. This is only
--   returned on GET requests and not LIST requests.
aLastModifierEmail :: Lens' Asset (Maybe Text)

-- | The asset's name.
aName :: Lens' Asset (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   asset. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
aBbox :: Lens' Asset [Double]

-- | The URL to query to retrieve the asset's complete object. The assets
--   endpoint only returns high-level information about a resource.
aResource :: Lens' Asset (Maybe Text)

-- | The asset's globally unique ID.
aId :: Lens' Asset (Maybe Text)

-- | The ID of the project to which the asset belongs.
aProjectId :: Lens' Asset (Maybe Text)

-- | The type of asset. One of raster, rasterCollection, table, map, or
--   layer.
aType :: Lens' Asset (Maybe AssetType)

-- | The asset's description.
aDescription :: Lens' Asset (Maybe Text)

-- | An array of text strings, with each string representing a tag. More
--   information about tags can be found in the Tagging data article of the
--   Maps Engine help center.
aTags :: Lens' Asset [Text]

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
data LayerLayerType

-- | <pre>
--   image
--   </pre>
LLTImage :: LayerLayerType

-- | <pre>
--   vector
--   </pre>
LLTVector :: LayerLayerType

-- | Parameters for styling points as scaled shapes.
--   
--   <i>See:</i> <a>scaledShape</a> smart constructor.
data ScaledShape

-- | Creates a value of <a>ScaledShape</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>ssBOrder</a></li>
--   <li><a>ssFill</a></li>
--   <li><a>ssShape</a></li>
--   </ul>
scaledShape :: ScaledShape

-- | Border color/width of the shape. If not specified the shape won't have
--   a border.
ssBOrder :: Lens' ScaledShape (Maybe BOrder)

-- | The fill color of the shape. If not specified the shape will be
--   transparent (although the borders may not be).
ssFill :: Lens' ScaledShape (Maybe Color)

-- | Name of the shape.
ssShape :: Lens' ScaledShape (Maybe ScaledShapeShape)

-- | The account type.
data PermissionType

-- | <pre>
--   anyone
--   </pre>
Anyone :: PermissionType

-- | <pre>
--   group
--   </pre>
Group :: PermissionType

-- | <pre>
--   user
--   </pre>
User :: PermissionType

-- | The processing status of this map. Map processing is automatically
--   started once a map becomes ready for processing.
data MapProcessingStatus

-- | <pre>
--   complete
--   </pre>
MPSComplete :: MapProcessingStatus

-- | <pre>
--   failed
--   </pre>
MPSFailed :: MapProcessingStatus

-- | <pre>
--   notReady
--   </pre>
MPSNotReady :: MapProcessingStatus

-- | <pre>
--   processing
--   </pre>
MPSProcessing :: MapProcessingStatus

-- | <pre>
--   ready
--   </pre>
MPSReady :: MapProcessingStatus

-- | The request sent to features.BatchDelete.
--   
--   <i>See:</i> <a>featuresBatchDeleteRequest</a> smart constructor.
data FeaturesBatchDeleteRequest

-- | Creates a value of <a>FeaturesBatchDeleteRequest</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>fbdrPrimaryKeys</a></li>
--   <li><a>fbdrGxIds</a></li>
--   </ul>
featuresBatchDeleteRequest :: FeaturesBatchDeleteRequest
fbdrPrimaryKeys :: Lens' FeaturesBatchDeleteRequest [Text]
fbdrGxIds :: Lens' FeaturesBatchDeleteRequest [Text]

-- | Deprecated: The version parameter indicates which version of the map
--   should be returned. When version is set to published, the published
--   version of the map will be returned. Please use the maps.getPublished
--   endpoint instead.
data MapsGetVersion

-- | <tt>draft</tt> The draft version.
Draft :: MapsGetVersion

-- | <tt>published</tt> The published version.
Published :: MapsGetVersion

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data TablesListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
TLROwner :: TablesListRole

-- | <tt>reader</tt> The user can read the asset.
TLRReader :: TablesListRole

-- | <tt>writer</tt> The user can read and write the asset.
TLRWriter :: TablesListRole

-- | An icon is a user-uploaded image that can be used to style point
--   geometries.
--   
--   <i>See:</i> <a>icon</a> smart constructor.
data Icon

-- | Creates a value of <a>Icon</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>iName</a></li>
--   <li><a>iId</a></li>
--   <li><a>iDescription</a></li>
--   </ul>
icon :: Icon

-- | The name of this Icon, supplied by the author.
iName :: Lens' Icon (Maybe Text)

-- | An ID used to refer to this Icon.
iId :: Lens' Icon (Maybe Text)

-- | The description of this Icon, supplied by the author.
iDescription :: Lens' Icon (Maybe Text)

-- | The type of the vector style. Currently, only displayRule is
--   supported.
data VectorStyleType

-- | <pre>
--   displayRule
--   </pre>
VSTDisplayRule :: VectorStyleType

-- | Identifies this object as a GeoJsonLineString.
data GeoJSONLineStringType

-- | <pre>
--   LineString
--   </pre>
LineString :: GeoJSONLineStringType

-- | The response returned by a call to parents.List.
--   
--   <i>See:</i> <a>parentsListResponse</a> smart constructor.
data ParentsListResponse

-- | Creates a value of <a>ParentsListResponse</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>plrNextPageToken</a></li>
--   <li><a>plrParents</a></li>
--   </ul>
parentsListResponse :: ParentsListResponse

-- | Next page token.
plrNextPageToken :: Lens' ParentsListResponse (Maybe Text)

-- | The parent assets.
plrParents :: Lens' ParentsListResponse [Parent]

-- | The response returned by a call to features.List.
--   
--   <i>See:</i> <a>featuresListResponse</a> smart constructor.
data FeaturesListResponse

-- | Creates a value of <a>FeaturesListResponse</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>flrNextPageToken</a></li>
--   <li><a>flrAllowedQueriesPerSecond</a></li>
--   <li><a>flrSchema</a></li>
--   <li><a>flrFeatures</a></li>
--   <li><a>flrType</a></li>
--   </ul>
featuresListResponse :: FeaturesListResponse

-- | Next page token.
flrNextPageToken :: Lens' FeaturesListResponse (Maybe Text)

-- | An indicator of the maximum rate at which queries may be made, if all
--   queries were as expensive as this query.
flrAllowedQueriesPerSecond :: Lens' FeaturesListResponse (Maybe Double)

-- | The feature schema.
flrSchema :: Lens' FeaturesListResponse (Maybe Schema)

-- | Resources returned.
flrFeatures :: Lens' FeaturesListResponse [Feature]
flrType :: Lens' FeaturesListResponse Text

-- | The response returned by a call to
--   rasterCollections.rasters.batchInsert.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchInsertResponse</a> smart
--   constructor.
data RasterCollectionsRastersBatchInsertResponse

-- | Creates a value of <a>RasterCollectionsRastersBatchInsertResponse</a>
--   with the minimum fields required to make a request.
rasterCollectionsRastersBatchInsertResponse :: RasterCollectionsRastersBatchInsertResponse

-- | The publishing status of this layer.
data LayerPublishingStatus

-- | <pre>
--   notPublished
--   </pre>
LPSNotPublished :: LayerPublishingStatus

-- | <pre>
--   published
--   </pre>
LPSPublished :: LayerPublishingStatus

-- | Identifies this object as a MapKmlLink.
data MapKmlLinkType

-- | <pre>
--   kmlLink
--   </pre>
KmlLink :: MapKmlLinkType

-- | Deprecated: The type of the datasources used to build this Layer.
--   Note: This has been replaced by layerType, but is still available for
--   now to maintain backward compatibility.
data LayerDatasourceType

-- | <pre>
--   image
--   </pre>
LDTImage :: LayerDatasourceType

-- | <pre>
--   table
--   </pre>
LDTTable :: LayerDatasourceType

-- | Identifies this object as a GeoJsonGeometryCollection.
data GeoJSONGeometryCollectionType

-- | <pre>
--   GeometryCollection
--   </pre>
GeometryCollection :: GeoJSONGeometryCollectionType

-- | The response returned by a call to icons.List.
--   
--   <i>See:</i> <a>iconsListResponse</a> smart constructor.
data IconsListResponse

-- | Creates a value of <a>IconsListResponse</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>ilrNextPageToken</a></li>
--   <li><a>ilrIcons</a></li>
--   </ul>
iconsListResponse :: IconsListResponse

-- | Next page token.
ilrNextPageToken :: Lens' IconsListResponse (Maybe Text)

-- | Resources returned.
ilrIcons :: Lens' IconsListResponse [Icon]

-- | Text label style.
--   
--   <i>See:</i> <a>labelStyle</a> smart constructor.
data LabelStyle

-- | Creates a value of <a>LabelStyle</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>lsFontStyle</a></li>
--   <li><a>lsColor</a></li>
--   <li><a>lsSize</a></li>
--   <li><a>lsOpacity</a></li>
--   <li><a>lsOutline</a></li>
--   <li><a>lsFontWeight</a></li>
--   <li><a>lsColumn</a></li>
--   </ul>
labelStyle :: LabelStyle

-- | Font style of the label, defaults to 'normal'.
lsFontStyle :: Lens' LabelStyle (Maybe LabelStyleFontStyle)

-- | Color of the text. If not provided, default to black.
lsColor :: Lens' LabelStyle (Maybe Text)

-- | Font size of the label, in pixels. 8 &lt;= size &lt;= 15. If not
--   provided, a default size will be provided.
lsSize :: Lens' LabelStyle (Maybe Double)

-- | Opacity of the text.
lsOpacity :: Lens' LabelStyle (Maybe Double)

-- | Outline color of the text.
lsOutline :: Lens' LabelStyle (Maybe Color)

-- | Font weight of the label, defaults to 'normal'.
lsFontWeight :: Lens' LabelStyle (Maybe LabelStyleFontWeight)

-- | The column value of the feature to be displayed.
lsColumn :: Lens' LabelStyle (Maybe Text)

-- | The request sent to rasterCollections.Rasters.BatchDelete.
--   
--   <i>See:</i> <a>rasterCollectionsRasterBatchDeleteRequest</a> smart
--   constructor.
data RasterCollectionsRasterBatchDeleteRequest

-- | Creates a value of <a>RasterCollectionsRasterBatchDeleteRequest</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>rcrbdrIds</a></li>
--   </ul>
rasterCollectionsRasterBatchDeleteRequest :: RasterCollectionsRasterBatchDeleteRequest

-- | An array of Raster asset IDs to be removed from this RasterCollection.
rcrbdrIds :: Lens' RasterCollectionsRasterBatchDeleteRequest [Text]

-- | A schema indicating the properties which may be associated with
--   features within a Table, and the types of those properties.
--   
--   <i>See:</i> <a>schema</a> smart constructor.
data Schema

-- | Creates a value of <a>Schema</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>sPrimaryKey</a></li>
--   <li><a>sColumns</a></li>
--   <li><a>sPrimaryGeometry</a></li>
--   </ul>
schema :: Schema

-- | The name of the column that contains the unique identifier of a
--   Feature.
sPrimaryKey :: Lens' Schema (Maybe Text)

-- | An array of TableColumn objects. The first object in the array must be
--   named geometry and be of type points, lineStrings, polygons, or
--   mixedGeometry.
sColumns :: Lens' Schema [TableColumn]

-- | The name of the column that contains a feature's geometry. This field
--   can be omitted during table create; Google Maps Engine supports only a
--   single geometry column, which must be named geometry and be the first
--   object in the columns array.
sPrimaryGeometry :: Lens' Schema (Maybe Text)
data MapItem

-- | Creates a value of <a>MapItem</a> with the minimum fields required to
--   make a request.
mapItem :: MapItem

-- | Identifies this object as a GeoJsonPoint.
data GeoJSONPointType

-- | <pre>
--   Point
--   </pre>
Point :: GeoJSONPointType

-- | Identifies this object as a GeoJsonPolygon.
data GeoJSONPolygonType

-- | <pre>
--   Polygon
--   </pre>
Polygon :: GeoJSONPolygonType

-- | The request sent to rasterCollections.Rasters.BatchInsert.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchInsertRequest</a> smart
--   constructor.
data RasterCollectionsRastersBatchInsertRequest

-- | Creates a value of <a>RasterCollectionsRastersBatchInsertRequest</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>rcrbirIds</a></li>
--   </ul>
rasterCollectionsRastersBatchInsertRequest :: RasterCollectionsRastersBatchInsertRequest

-- | An array of Raster asset IDs to be added to this RasterCollection.
rcrbirIds :: Lens' RasterCollectionsRastersBatchInsertRequest [Text]

-- | The published version of a map asset.
--   
--   <i>See:</i> <a>publishedMap</a> smart constructor.
data PublishedMap

-- | Creates a value of <a>PublishedMap</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>pmDefaultViewport</a></li>
--   <li><a>pmContents</a></li>
--   <li><a>pmName</a></li>
--   <li><a>pmId</a></li>
--   <li><a>pmProjectId</a></li>
--   <li><a>pmDescription</a></li>
--   </ul>
publishedMap :: PublishedMap

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
pmDefaultViewport :: Lens' PublishedMap [Double]

-- | The contents of this Map.
pmContents :: Lens' PublishedMap [MapItem]

-- | The name of this Map, supplied by the author.
pmName :: Lens' PublishedMap (Maybe Text)

-- | A globally unique ID, used to refer to this Map.
pmId :: Lens' PublishedMap (Maybe Text)

-- | The ID of the project that this Map is in.
pmProjectId :: Lens' PublishedMap (Maybe Text)

-- | The description of this Map, supplied by the author.
pmDescription :: Lens' PublishedMap (Maybe Text)

-- | Acquisition time represents acquired time of a raster.
--   
--   <i>See:</i> <a>acquisitionTime</a> smart constructor.
data AcquisitionTime

-- | Creates a value of <a>AcquisitionTime</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>atStart</a></li>
--   <li><a>atPrecision</a></li>
--   <li><a>atEnd</a></li>
--   </ul>
acquisitionTime :: AcquisitionTime

-- | The acquisition time, or start time if acquisition time is a range.
--   The value is an RFC 3339 formatted date-time value
--   (1970-01-01T00:00:00Z).
atStart :: Lens' AcquisitionTime (Maybe UTCTime)

-- | The precision of acquisition time.
atPrecision :: Lens' AcquisitionTime (Maybe AcquisitionTimePrecision)

-- | The end time if acquisition time is a range. The value is an RFC 3339
--   formatted date-time value (1970-01-01T00:00:00Z).
atEnd :: Lens' AcquisitionTime (Maybe UTCTime)

-- | Deprecated: The version parameter indicates which version of the layer
--   should be returned. When version is set to published, the published
--   version of the layer will be returned. Please use the
--   layers.getPublished endpoint instead.
data LayersGetVersion

-- | <tt>draft</tt> The draft version.
LGVDraft :: LayersGetVersion

-- | <tt>published</tt> The published version.
LGVPublished :: LayersGetVersion

-- | The response returned by a call to tables.List. Note: The list
--   response does not include all the fields available in a table. Refer
--   to the table resource description for details of the fields that are
--   not included. You'll need to send a get request to retrieve the
--   additional fields for each table.
--   
--   <i>See:</i> <a>tablesListResponse</a> smart constructor.
data TablesListResponse

-- | Creates a value of <a>TablesListResponse</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>tlrNextPageToken</a></li>
--   <li><a>tlrTables</a></li>
--   </ul>
tablesListResponse :: TablesListResponse

-- | Next page token.
tlrNextPageToken :: Lens' TablesListResponse (Maybe ByteString)

-- | Resources returned.
tlrTables :: Lens' TablesListResponse [Table]

-- | Style for icon, this is part of point style.
--   
--   <i>See:</i> <a>iconStyle</a> smart constructor.
data IconStyle

-- | Creates a value of <a>IconStyle</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>isScaledShape</a></li>
--   <li><a>isScalingFunction</a></li>
--   <li><a>isName</a></li>
--   <li><a>isId</a></li>
--   </ul>
iconStyle :: IconStyle

-- | A scalable shape.
isScaledShape :: Lens' IconStyle (Maybe ScaledShape)

-- | The function used to scale shapes. Required when a scaledShape is
--   specified.
isScalingFunction :: Lens' IconStyle (Maybe ScalingFunction)

-- | Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock
--   icon names for valid icon names. For example, to specify small_red,
--   set name to 'gx_small_red'.
isName :: Lens' IconStyle (Maybe Text)

-- | Custom icon id.
isId :: Lens' IconStyle (Maybe Text)

-- | A display rule of the vector style.
--   
--   <i>See:</i> <a>displayRule</a> smart constructor.
data DisplayRule

-- | Creates a value of <a>DisplayRule</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>drPointOptions</a></li>
--   <li><a>drPolygonOptions</a></li>
--   <li><a>drZoomLevels</a></li>
--   <li><a>drFilters</a></li>
--   <li><a>drName</a></li>
--   <li><a>drLineOptions</a></li>
--   </ul>
displayRule :: DisplayRule

-- | Style applied to points. Required for Point Geometry.
drPointOptions :: Lens' DisplayRule (Maybe PointStyle)

-- | Style applied to polygons. Required for Polygon Geometry.
drPolygonOptions :: Lens' DisplayRule (Maybe PolygonStyle)

-- | The zoom levels that this display rule apply.
drZoomLevels :: Lens' DisplayRule (Maybe ZoomLevels)

-- | This display rule will only be applied to features that match all of
--   the filters here. If filters is empty, then the rule applies to all
--   features.
drFilters :: Lens' DisplayRule [Filter]

-- | Display rule name. Name is not unique and cannot be used for
--   identification purpose.
drName :: Lens' DisplayRule (Maybe Text)

-- | Style applied to lines. Required for LineString Geometry.
drLineOptions :: Lens' DisplayRule (Maybe LineStyle)

-- | Border in line style. Both color and width are required.
--   
--   <i>See:</i> <a>bOrder</a> smart constructor.
data BOrder

-- | Creates a value of <a>BOrder</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>boColor</a></li>
--   <li><a>boWidth</a></li>
--   <li><a>boOpacity</a></li>
--   </ul>
bOrder :: BOrder

-- | Color of the border.
boColor :: Lens' BOrder (Maybe Text)

-- | Width of the border, in pixels.
boWidth :: Lens' BOrder (Maybe Double)

-- | Opacity of the border.
boOpacity :: Lens' BOrder (Maybe Double)

-- | A Map is a collection of Layers, optionally contained within folders.
--   
--   <i>See:</i> <a>map'</a> smart constructor.
data Map

-- | Creates a value of <a>Map</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>mCreationTime</a></li>
--   <li><a>mWritersCanEditPermissions</a></li>
--   <li><a>mEtag</a></li>
--   <li><a>mDefaultViewport</a></li>
--   <li><a>mContents</a></li>
--   <li><a>mPublishingStatus</a></li>
--   <li><a>mCreatorEmail</a></li>
--   <li><a>mLastModifiedTime</a></li>
--   <li><a>mLastModifierEmail</a></li>
--   <li><a>mVersions</a></li>
--   <li><a>mName</a></li>
--   <li><a>mBbox</a></li>
--   <li><a>mProcessingStatus</a></li>
--   <li><a>mId</a></li>
--   <li><a>mProjectId</a></li>
--   <li><a>mDraftAccessList</a></li>
--   <li><a>mPublishedAccessList</a></li>
--   <li><a>mDescription</a></li>
--   <li><a>mTags</a></li>
--   </ul>
map' :: Map

-- | The creation time of this map. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
mCreationTime :: Lens' Map (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
mWritersCanEditPermissions :: Lens' Map (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
mEtag :: Lens' Map (Maybe Text)

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mDefaultViewport :: Lens' Map [Double]

-- | The contents of this Map.
mContents :: Lens' Map [MapItem]

-- | The publishing status of this map.
mPublishingStatus :: Lens' Map (Maybe MapPublishingStatus)

-- | The email address of the creator of this map. This is only returned on
--   GET requests and not LIST requests.
mCreatorEmail :: Lens' Map (Maybe Text)

-- | The last modified time of this map. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
mLastModifiedTime :: Lens' Map (Maybe UTCTime)

-- | The email address of the last modifier of this map. This is only
--   returned on GET requests and not LIST requests.
mLastModifierEmail :: Lens' Map (Maybe Text)

-- | Deprecated: An array containing the available versions of this Map.
--   Currently may only contain "published". The publishingStatus field
--   should be used instead.
mVersions :: Lens' Map [Text]

-- | The name of this Map, supplied by the author.
mName :: Lens' Map (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this Map.
--   The box is expressed as \"west, south, east, north\". The numbers
--   represent latitude and longitude in decimal degrees.
mBbox :: Lens' Map [Double]

-- | The processing status of this map. Map processing is automatically
--   started once a map becomes ready for processing.
mProcessingStatus :: Lens' Map (Maybe MapProcessingStatus)

-- | A globally unique ID, used to refer to this Map.
mId :: Lens' Map (Maybe Text)

-- | The ID of the project that this Map is in.
mProjectId :: Lens' Map (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
mDraftAccessList :: Lens' Map (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. This is an input
--   field only. It is not returned in response to a list or get request.
mPublishedAccessList :: Lens' Map (Maybe Text)

-- | The description of this Map, supplied by the author.
mDescription :: Lens' Map (Maybe Text)

-- | Tags of this Map.
mTags :: Lens' Map [Text]

-- | Identifies this object as a MapLayer.
data MapLayerType

-- | <pre>
--   layer
--   </pre>
MLTLayer :: MapLayerType

-- | The response returned by a call to rasterCollections.rasters.List.
--   
--   <i>See:</i> <a>rasterCollectionsRastersListResponse</a> smart
--   constructor.
data RasterCollectionsRastersListResponse

-- | Creates a value of <a>RasterCollectionsRastersListResponse</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>rcrlrNextPageToken</a></li>
--   <li><a>rcrlrRasters</a></li>
--   </ul>
rasterCollectionsRastersListResponse :: RasterCollectionsRastersListResponse

-- | Next page token.
rcrlrNextPageToken :: Lens' RasterCollectionsRastersListResponse (Maybe Text)

-- | Resources returned.
rcrlrRasters :: Lens' RasterCollectionsRastersListResponse [RasterCollectionsRaster]

-- | Multi Line String
--   
--   <i>See:</i> <a>geoJSONMultiLineString</a> smart constructor.
data GeoJSONMultiLineString

-- | Creates a value of <a>GeoJSONMultiLineString</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>gjmlsCoordinates</a></li>
--   <li><a>gjmlsType</a></li>
--   </ul>
geoJSONMultiLineString :: GeoJSONMultiLineString

-- | An array of at least two GeoJsonLineString coordinate arrays.
gjmlsCoordinates :: Lens' GeoJSONMultiLineString [[[Double]]]

-- | Identifies this object as a GeoJsonMultiLineString.
gjmlsType :: Lens' GeoJSONMultiLineString (Maybe GeoJSONMultiLineStringType)

-- | Parameters for scaling scaled shapes.
--   
--   <i>See:</i> <a>scalingFunction</a> smart constructor.
data ScalingFunction

-- | Creates a value of <a>ScalingFunction</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>sfValueRange</a></li>
--   <li><a>sfSizeRange</a></li>
--   <li><a>sfScalingType</a></li>
--   <li><a>sfColumn</a></li>
--   </ul>
scalingFunction :: ScalingFunction

-- | The range of values to display across the size range.
sfValueRange :: Lens' ScalingFunction (Maybe ValueRange)

-- | The range of shape sizes, in pixels. For circles, the size corresponds
--   to the diameter.
sfSizeRange :: Lens' ScalingFunction (Maybe SizeRange)

-- | The type of scaling function to use. Defaults to SQRT. Currently only
--   linear and square root scaling are supported.
sfScalingType :: Lens' ScalingFunction (Maybe ScalingFunctionScalingType)

-- | Name of the numeric column used to scale a shape.
sfColumn :: Lens' ScalingFunction (Maybe Text)

-- | Font weight of the label, defaults to 'normal'.
data LabelStyleFontWeight

-- | <pre>
--   bold
--   </pre>
Bold :: LabelStyleFontWeight

-- | <pre>
--   normal
--   </pre>
Normal :: LabelStyleFontWeight

-- | Identifies this object as a MapFolder.
data MapFolderType

-- | <pre>
--   folder
--   </pre>
Folder :: MapFolderType

-- | The processing status of this RasterCollection.
data RasterCollectionProcessingStatus

-- | <pre>
--   complete
--   </pre>
RCPSComplete :: RasterCollectionProcessingStatus

-- | <pre>
--   failed
--   </pre>
RCPSFailed :: RasterCollectionProcessingStatus

-- | <pre>
--   notReady
--   </pre>
RCPSNotReady :: RasterCollectionProcessingStatus

-- | <pre>
--   processing
--   </pre>
RCPSProcessing :: RasterCollectionProcessingStatus

-- | <pre>
--   ready
--   </pre>
RCPSReady :: RasterCollectionProcessingStatus

-- | The table version to access. See Accessing Public Data for
--   information.
data TablesFeaturesListVersion

-- | <tt>draft</tt> The draft version.
TFLVDraft :: TablesFeaturesListVersion

-- | <tt>published</tt> The published version.
TFLVPublished :: TablesFeaturesListVersion
data MapsListProcessingStatus

-- | <tt>complete</tt> The map has completed processing.
MLPSComplete :: MapsListProcessingStatus

-- | <tt>failed</tt> The map has failed processing.
MLPSFailed :: MapsListProcessingStatus

-- | <tt>notReady</tt> The map is not ready for processing.
MLPSNotReady :: MapsListProcessingStatus

-- | <tt>processing</tt> The map is processing.
MLPSProcessing :: MapsListProcessingStatus

-- | The response returned by a call to resources.List.
--   
--   <i>See:</i> <a>assetsListResponse</a> smart constructor.
data AssetsListResponse

-- | Creates a value of <a>AssetsListResponse</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>alrNextPageToken</a></li>
--   <li><a>alrAssets</a></li>
--   </ul>
assetsListResponse :: AssetsListResponse

-- | Next page token.
alrNextPageToken :: Lens' AssetsListResponse (Maybe ByteString)

-- | Assets returned.
alrAssets :: Lens' AssetsListResponse [Asset]

-- | The response returned by a call to any asset's Publish method.
--   
--   <i>See:</i> <a>publishResponse</a> smart constructor.
data PublishResponse

-- | Creates a value of <a>PublishResponse</a> with the minimum fields
--   required to make a request.
publishResponse :: PublishResponse

-- | The request sent to features.Insert.
--   
--   <i>See:</i> <a>featuresBatchInsertRequest</a> smart constructor.
data FeaturesBatchInsertRequest

-- | Creates a value of <a>FeaturesBatchInsertRequest</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>fbirFeatures</a></li>
--   <li><a>fbirNormalizeGeometries</a></li>
--   </ul>
featuresBatchInsertRequest :: FeaturesBatchInsertRequest
fbirFeatures :: Lens' FeaturesBatchInsertRequest [Feature]

-- | If true, the server will normalize feature geometries. It is assumed
--   that the South Pole is exterior to any polygons given. See here for a
--   list of normalizations. If false, all feature geometries must be given
--   already normalized. The points in all LinearRings must be listed in
--   counter-clockwise order, and LinearRings may not intersect.
fbirNormalizeGeometries :: Lens' FeaturesBatchInsertRequest Bool
data Datasource

-- | Creates a value of <a>Datasource</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>dId</a></li>
--   </ul>
datasource :: Datasource

-- | The ID of a datasource.
dId :: Lens' Datasource (Maybe Text)

-- | Font style of the label, defaults to 'normal'.
data LabelStyleFontStyle

-- | <pre>
--   italic
--   </pre>
LSFSItalic :: LabelStyleFontStyle

-- | <pre>
--   normal
--   </pre>
LSFSNormal :: LabelStyleFontStyle

-- | A raster resource.
--   
--   <i>See:</i> <a>rasterCollectionsRaster</a> smart constructor.
data RasterCollectionsRaster

-- | Creates a value of <a>RasterCollectionsRaster</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>rcrCreationTime</a></li>
--   <li><a>rcrRasterType</a></li>
--   <li><a>rcrLastModifiedTime</a></li>
--   <li><a>rcrName</a></li>
--   <li><a>rcrBbox</a></li>
--   <li><a>rcrId</a></li>
--   <li><a>rcrProjectId</a></li>
--   <li><a>rcrDescription</a></li>
--   <li><a>rcrTags</a></li>
--   </ul>
rasterCollectionsRaster :: RasterCollectionsRaster

-- | The creation time of this raster. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
rcrCreationTime :: Lens' RasterCollectionsRaster (Maybe UTCTime)

-- | The type of this Raster. Always "image" today.
rcrRasterType :: Lens' RasterCollectionsRaster Text

-- | The last modified time of this raster. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcrLastModifiedTime :: Lens' RasterCollectionsRaster (Maybe UTCTime)

-- | The name of this Raster, supplied by the author.
rcrName :: Lens' RasterCollectionsRaster (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Raster. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitudes and longitudes in decimal degrees.
rcrBbox :: Lens' RasterCollectionsRaster [Double]

-- | A globally unique ID, used to refer to this Raster.
rcrId :: Lens' RasterCollectionsRaster (Maybe Text)

-- | The ID of the project that this Raster is in.
rcrProjectId :: Lens' RasterCollectionsRaster (Maybe Text)

-- | The description of this Raster, supplied by the author.
rcrDescription :: Lens' RasterCollectionsRaster (Maybe Text)

-- | Tags of this Raster.
rcrTags :: Lens' RasterCollectionsRaster [Text]

-- | Conditions for filtering features.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</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>fOperator</a></li>
--   <li><a>fValue</a></li>
--   <li><a>fColumn</a></li>
--   </ul>
filter' :: Filter

-- | Operation used to evaluate the filter.
fOperator :: Lens' Filter (Maybe FilterOperator)

-- | Value to be evaluated against attribute.
fValue :: Lens' Filter (Maybe JSONValue)

-- | The column name to filter on.
fColumn :: Lens' Filter (Maybe Text)
data GeoJSONMultiPoint

-- | Creates a value of <a>GeoJSONMultiPoint</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>gjmpCoordinates</a></li>
--   <li><a>gjmpType</a></li>
--   </ul>
geoJSONMultiPoint :: GeoJSONMultiPoint

-- | An array of at least two GeoJsonPoint coordinate arrays.
gjmpCoordinates :: Lens' GeoJSONMultiPoint [[Double]]

-- | Identifies this object as a GeoJsonMultiPoint.
gjmpType :: Lens' GeoJSONMultiPoint (Maybe GeoJSONMultiPointType)

-- | The type of asset. One of raster, rasterCollection, table, map, or
--   layer.
data AssetType

-- | <pre>
--   layer
--   </pre>
ATLayer :: AssetType

-- | <pre>
--   map
--   </pre>
ATMap :: AssetType

-- | <pre>
--   raster
--   </pre>
ATRaster :: AssetType

-- | <pre>
--   rasterCollection
--   </pre>
ATRasterCollection :: AssetType

-- | <pre>
--   table
--   </pre>
ATTable :: AssetType

-- | The type of this Raster. Always "image" today.
data RasterRasterType

-- | <pre>
--   image
--   </pre>
RRTImage :: RasterRasterType

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RasterCollectionsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RCLROwner :: RasterCollectionsListRole

-- | <tt>reader</tt> The user can read the asset.
RCLRReader :: RasterCollectionsListRole

-- | <tt>writer</tt> The user can read and write the asset.
RCLRWriter :: RasterCollectionsListRole

-- | Operation used to evaluate the filter.
data FilterOperator

-- | <pre>
--   !=
--   </pre>
NotEqual :: FilterOperator

-- | <pre>
--   &lt;
--   </pre>
Less :: FilterOperator

-- | <pre>
--   &lt;=
--   </pre>
LessOrEqual :: FilterOperator

-- | <pre>
--   ==
--   </pre>
Equal :: FilterOperator

-- | <pre>
--   &gt;
--   </pre>
Greater :: FilterOperator

-- | <pre>
--   &gt;=
--   </pre>
GreaterEqual :: FilterOperator

-- | <pre>
--   contains
--   </pre>
Contains :: FilterOperator

-- | <pre>
--   endsWith
--   </pre>
EndsWith :: FilterOperator

-- | <pre>
--   startsWith
--   </pre>
StartsWith :: FilterOperator

-- | The type of data stored in this column.
data TableColumnType

-- | <pre>
--   datetime
--   </pre>
Datetime :: TableColumnType

-- | <pre>
--   double
--   </pre>
Double :: TableColumnType

-- | <pre>
--   integer
--   </pre>
Integer :: TableColumnType

-- | <pre>
--   lineStrings
--   </pre>
LineStrings :: TableColumnType

-- | <pre>
--   mixedGeometry
--   </pre>
MixedGeometry :: TableColumnType

-- | <pre>
--   points
--   </pre>
Points :: TableColumnType

-- | <pre>
--   polygons
--   </pre>
Polygons :: TableColumnType

-- | <pre>
--   string
--   </pre>
String :: TableColumnType
data GeoJSONMultiPolygon

-- | Creates a value of <a>GeoJSONMultiPolygon</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>gjsonmpCoordinates</a></li>
--   <li><a>gjsonmpType</a></li>
--   </ul>
geoJSONMultiPolygon :: GeoJSONMultiPolygon

-- | An array of at least two GeoJsonPolygon coordinate arrays.
gjsonmpCoordinates :: Lens' GeoJSONMultiPolygon [[[[Double]]]]

-- | Identifies this object as a GeoJsonMultiPolygon.
gjsonmpType :: Lens' GeoJSONMultiPolygon (Maybe GeoJSONMultiPolygonType)

-- | A Layer combines multiple datasources, with styling information, for
--   presentation on a map.
--   
--   <i>See:</i> <a>layer</a> smart constructor.
data Layer

-- | Creates a value of <a>Layer</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>layCreationTime</a></li>
--   <li><a>layWritersCanEditPermissions</a></li>
--   <li><a>layStyle</a></li>
--   <li><a>layEtag</a></li>
--   <li><a>layDatasourceType</a></li>
--   <li><a>layPublishingStatus</a></li>
--   <li><a>layCreatorEmail</a></li>
--   <li><a>layLayerType</a></li>
--   <li><a>layLastModifiedTime</a></li>
--   <li><a>layDatasources</a></li>
--   <li><a>layLastModifierEmail</a></li>
--   <li><a>layName</a></li>
--   <li><a>layBbox</a></li>
--   <li><a>layProcessingStatus</a></li>
--   <li><a>layId</a></li>
--   <li><a>layProjectId</a></li>
--   <li><a>layDraftAccessList</a></li>
--   <li><a>layPublishedAccessList</a></li>
--   <li><a>layDescription</a></li>
--   <li><a>layTags</a></li>
--   </ul>
layer :: Layer

-- | The creation time of this layer. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
layCreationTime :: Lens' Layer (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
layWritersCanEditPermissions :: Lens' Layer (Maybe Bool)

-- | The styling information for a vector layer. Note: Style information is
--   returned in response to a get request but not a list request. After
--   requesting a list of layers, you'll need to send a get request to
--   retrieve the VectorStyles for each layer.
layStyle :: Lens' Layer (Maybe VectorStyle)

-- | The ETag, used to refer to the current version of the asset.
layEtag :: Lens' Layer (Maybe Text)

-- | Deprecated: The type of the datasources used to build this Layer.
--   Note: This has been replaced by layerType, but is still available for
--   now to maintain backward compatibility.
layDatasourceType :: Lens' Layer (Maybe LayerDatasourceType)

-- | The publishing status of this layer.
layPublishingStatus :: Lens' Layer (Maybe LayerPublishingStatus)

-- | The email address of the creator of this layer. This is only returned
--   on GET requests and not LIST requests.
layCreatorEmail :: Lens' Layer (Maybe Text)

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
layLayerType :: Lens' Layer (Maybe LayerLayerType)

-- | The last modified time of this layer. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
layLastModifiedTime :: Lens' Layer (Maybe UTCTime)

-- | An array of datasources used to build this layer. If layerType is
--   "image", or layerType is not specified and datasourceType is "image",
--   then each element in this array is a reference to an Image or
--   RasterCollection. If layerType is "vector", or layerType is not
--   specified and datasourceType is "table" then each element in this
--   array is a reference to a Vector Table.
layDatasources :: Lens' Layer [Datasource]

-- | The email address of the last modifier of this layer. This is only
--   returned on GET requests and not LIST requests.
layLastModifierEmail :: Lens' Layer (Maybe Text)

-- | The name of this Layer, supplied by the author.
layName :: Lens' Layer (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Layer. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
layBbox :: Lens' Layer [Double]

-- | The processing status of this layer.
layProcessingStatus :: Lens' Layer (Maybe LayerProcessingStatus)

-- | A globally unique ID, used to refer to this Layer.
layId :: Lens' Layer (Maybe Text)

-- | The ID of the project that this Layer is in.
layProjectId :: Lens' Layer (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
layDraftAccessList :: Lens' Layer (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. Note: This is an
--   input field only. It is not returned in response to a list or get
--   request.
layPublishedAccessList :: Lens' Layer (Maybe Text)

-- | The description of this Layer, supplied by the author.
layDescription :: Lens' Layer (Maybe Text)

-- | Tags of this Layer.
layTags :: Lens' Layer [Text]

-- | Style for points.
--   
--   <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>psIcon</a></li>
--   <li><a>psLabel</a></li>
--   </ul>
pointStyle :: PointStyle

-- | Icon for the point; if it isn't null, exactly one of 'name', 'id' or
--   'scaledShape' must be set.
psIcon :: Lens' PointStyle (Maybe IconStyle)

-- | Label style for the point.
psLabel :: Lens' PointStyle (Maybe LabelStyle)
data RasterCollectionsListProcessingStatus

-- | <tt>complete</tt> The raster collection has completed processing.
RCLPSComplete :: RasterCollectionsListProcessingStatus

-- | <tt>failed</tt> The raster collection has failed processing.
RCLPSFailed :: RasterCollectionsListProcessingStatus

-- | <tt>notReady</tt> The raster collection is not ready for processing.
RCLPSNotReady :: RasterCollectionsListProcessingStatus

-- | <tt>processing</tt> The raster collection is processing.
RCLPSProcessing :: RasterCollectionsListProcessingStatus

-- | <tt>ready</tt> The raster collection is ready for processing.
RCLPSReady :: RasterCollectionsListProcessingStatus

-- | A geo-referenced raster.
--   
--   <i>See:</i> <a>raster</a> smart constructor.
data Raster

-- | Creates a value of <a>Raster</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>rrCreationTime</a></li>
--   <li><a>rrWritersCanEditPermissions</a></li>
--   <li><a>rrMaskType</a></li>
--   <li><a>rrEtag</a></li>
--   <li><a>rrCreatorEmail</a></li>
--   <li><a>rrRasterType</a></li>
--   <li><a>rrLastModifiedTime</a></li>
--   <li><a>rrLastModifierEmail</a></li>
--   <li><a>rrAcquisitionTime</a></li>
--   <li><a>rrName</a></li>
--   <li><a>rrBbox</a></li>
--   <li><a>rrProcessingStatus</a></li>
--   <li><a>rrFiles</a></li>
--   <li><a>rrId</a></li>
--   <li><a>rrProjectId</a></li>
--   <li><a>rrDraftAccessList</a></li>
--   <li><a>rrDescription</a></li>
--   <li><a>rrAttribution</a></li>
--   <li><a>rrTags</a></li>
--   </ul>
raster :: Raster

-- | The creation time of this raster. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
rrCreationTime :: Lens' Raster (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
rrWritersCanEditPermissions :: Lens' Raster (Maybe Bool)

-- | The mask processing type of this Raster.
rrMaskType :: Lens' Raster Text

-- | The ETag, used to refer to the current version of the asset.
rrEtag :: Lens' Raster (Maybe Text)

-- | The email address of the creator of this raster. This is only returned
--   on GET requests and not LIST requests.
rrCreatorEmail :: Lens' Raster (Maybe Text)

-- | The type of this Raster. Always "image" today.
rrRasterType :: Lens' Raster (Maybe RasterRasterType)

-- | The last modified time of this raster. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rrLastModifiedTime :: Lens' Raster (Maybe UTCTime)

-- | The email address of the last modifier of this raster. This is only
--   returned on GET requests and not LIST requests.
rrLastModifierEmail :: Lens' Raster (Maybe Text)

-- | The acquisition time of this Raster.
rrAcquisitionTime :: Lens' Raster (Maybe AcquisitionTime)

-- | The name of this Raster, supplied by the author.
rrName :: Lens' Raster (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Raster. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitudes and longitudes in decimal degrees.
rrBbox :: Lens' Raster [Double]

-- | The processing status of this Raster.
rrProcessingStatus :: Lens' Raster (Maybe RasterProcessingStatus)

-- | The files associated with this Raster.
rrFiles :: Lens' Raster [File]

-- | A globally unique ID, used to refer to this Raster.
rrId :: Lens' Raster (Maybe Text)

-- | The ID of the project that this Raster is in.
rrProjectId :: Lens' Raster (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
rrDraftAccessList :: Lens' Raster (Maybe Text)

-- | The description of this Raster, supplied by the author.
rrDescription :: Lens' Raster (Maybe Text)

-- | The name of the attribution to be used for this Raster.
rrAttribution :: Lens' Raster (Maybe Text)

-- | Tags of this Raster.
rrTags :: Lens' Raster [Text]

-- | Style for polygons.
--   
--   <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>pStroke</a></li>
--   <li><a>pFill</a></li>
--   <li><a>pLabel</a></li>
--   </ul>
polygonStyle :: PolygonStyle

-- | Border of the polygon. 0 &lt; border.width &lt;= 10.
pStroke :: Lens' PolygonStyle (Maybe BOrder)

-- | Fill color of the polygon. If not provided, the polygon will be
--   transparent and not visible if there is no border.
pFill :: Lens' PolygonStyle (Maybe Color)

-- | Label style for the polygon.
pLabel :: Lens' PolygonStyle (Maybe LabelStyle)

-- | A permission defines the user or group that has access to an asset,
--   and the type of access they have.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</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>perRole</a></li>
--   <li><a>perId</a></li>
--   <li><a>perType</a></li>
--   <li><a>perDiscoverable</a></li>
--   </ul>
permission :: Permission

-- | The type of access granted to this user or group.
perRole :: Lens' Permission (Maybe PermissionRole)

-- | The unique identifier of the permission. This could be the email
--   address of the user or group this permission refers to, or the string
--   "anyone" for public permissions.
perId :: Lens' Permission (Maybe Text)

-- | The account type.
perType :: Lens' Permission (Maybe PermissionType)

-- | Indicates whether a public asset is listed and can be found via a web
--   search (value true), or is visible only to people who have a link to
--   the asset (value false).
perDiscoverable :: Lens' Permission (Maybe Bool)

-- | The published version of a layer.
--   
--   <i>See:</i> <a>publishedLayer</a> smart constructor.
data PublishedLayer

-- | Creates a value of <a>PublishedLayer</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>plLayerType</a></li>
--   <li><a>plName</a></li>
--   <li><a>plId</a></li>
--   <li><a>plProjectId</a></li>
--   <li><a>plDescription</a></li>
--   </ul>
publishedLayer :: PublishedLayer

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
plLayerType :: Lens' PublishedLayer (Maybe PublishedLayerLayerType)

-- | The name of this Layer, supplied by the author.
plName :: Lens' PublishedLayer (Maybe Text)

-- | A globally unique ID, used to refer to this Layer.
plId :: Lens' PublishedLayer (Maybe Text)

-- | The ID of the project that this Layer is in.
plProjectId :: Lens' PublishedLayer (Maybe Text)

-- | The description of this Layer, supplied by the author.
plDescription :: Lens' PublishedLayer (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data LayersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
LLROwner :: LayersListRole

-- | <tt>reader</tt> The user can read the asset.
LLRReader :: LayersListRole

-- | <tt>writer</tt> The user can read and write the asset.
LLRWriter :: LayersListRole

-- | A collection of geographic features, and associated metadata.
--   
--   <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>tabCreationTime</a></li>
--   <li><a>tabWritersCanEditPermissions</a></li>
--   <li><a>tabEtag</a></li>
--   <li><a>tabCreatorEmail</a></li>
--   <li><a>tabLastModifiedTime</a></li>
--   <li><a>tabSchema</a></li>
--   <li><a>tabLastModifierEmail</a></li>
--   <li><a>tabName</a></li>
--   <li><a>tabBbox</a></li>
--   <li><a>tabProcessingStatus</a></li>
--   <li><a>tabFiles</a></li>
--   <li><a>tabId</a></li>
--   <li><a>tabProjectId</a></li>
--   <li><a>tabDraftAccessList</a></li>
--   <li><a>tabPublishedAccessList</a></li>
--   <li><a>tabSourceEncoding</a></li>
--   <li><a>tabDescription</a></li>
--   <li><a>tabTags</a></li>
--   </ul>
table :: Table

-- | The creation time of this table. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
tabCreationTime :: Lens' Table (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
tabWritersCanEditPermissions :: Lens' Table (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
tabEtag :: Lens' Table (Maybe Text)

-- | The email address of the creator of this table. This is only returned
--   on GET requests and not LIST requests.
tabCreatorEmail :: Lens' Table (Maybe Text)

-- | The last modified time of this table. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
tabLastModifiedTime :: Lens' Table (Maybe UTCTime)

-- | The schema for this table. Note: The schema is returned in response to
--   a get request but not a list request. After requesting a list of
--   tables, you'll need to send a get request to retrieve the schema for
--   each table.
tabSchema :: Lens' Table (Maybe Schema)

-- | The email address of the last modifier of this table. This is only
--   returned on GET requests and not LIST requests.
tabLastModifierEmail :: Lens' Table (Maybe Text)

-- | The name of this table, supplied by the author.
tabName :: Lens' Table (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Table. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
tabBbox :: Lens' Table [Double]

-- | The processing status of this table.
tabProcessingStatus :: Lens' Table (Maybe TableProcessingStatus)

-- | The files associated with this table.
tabFiles :: Lens' Table [File]

-- | A globally unique ID, used to refer to this table.
tabId :: Lens' Table (Maybe Text)

-- | The ID of the project to which the table belongs.
tabProjectId :: Lens' Table (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
tabDraftAccessList :: Lens' Table (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. Note: This is an
--   input field only. It is not returned in response to a list or get
--   request.
tabPublishedAccessList :: Lens' Table (Maybe Text)

-- | Encoding of the uploaded files. Valid values include UTF-8, CP1251,
--   ISO 8859-1, and Shift_JIS.
tabSourceEncoding :: Lens' Table Text

-- | The description of this table, supplied by the author.
tabDescription :: Lens' Table (Maybe Text)

-- | An array of text strings, with each string representing a tag. More
--   information about tags can be found in the Tagging data article of the
--   Maps Engine help center.
tabTags :: Lens' Table [Text]

-- | A single File, which is a component of an Asset.
--   
--   <i>See:</i> <a>file</a> smart constructor.
data File

-- | Creates a value of <a>File</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>fSize</a></li>
--   <li><a>fUploadStatus</a></li>
--   <li><a>fFilename</a></li>
--   </ul>
file :: File

-- | The size of the file in bytes.
fSize :: Lens' File (Maybe Int64)

-- | The upload status of the file.
fUploadStatus :: Lens' File (Maybe FileUploadStatus)

-- | The name of the file.
fFilename :: Lens' File (Maybe Text)

-- | A vector style contains styling information for vector layer.
--   
--   <i>See:</i> <a>vectorStyle</a> smart constructor.
data VectorStyle

-- | Creates a value of <a>VectorStyle</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>vsDisplayRules</a></li>
--   <li><a>vsFeatureInfo</a></li>
--   <li><a>vsType</a></li>
--   </ul>
vectorStyle :: VectorStyle
vsDisplayRules :: Lens' VectorStyle [DisplayRule]

-- | Individual feature info, this is called Info Window in Maps Engine UI.
--   If not provided, a default template with all attributes will be
--   generated.
vsFeatureInfo :: Lens' VectorStyle (Maybe FeatureInfo)

-- | The type of the vector style. Currently, only displayRule is
--   supported.
vsType :: Lens' VectorStyle (Maybe VectorStyleType)

-- | The response returned by a call to mapsengine.permissions.batchDelete.
--   
--   <i>See:</i> <a>permissionsBatchDeleteResponse</a> smart constructor.
data PermissionsBatchDeleteResponse

-- | Creates a value of <a>PermissionsBatchDeleteResponse</a> with the
--   minimum fields required to make a request.
permissionsBatchDeleteResponse :: PermissionsBatchDeleteResponse

-- | The table version to access. See Accessing Public Data for
--   information.
data TablesFeaturesGetVersion

-- | <tt>draft</tt> The draft version.
TFGVDraft :: TablesFeaturesGetVersion

-- | <tt>published</tt> The published version.
TFGVPublished :: TablesFeaturesGetVersion
data MapKmlLink

-- | Creates a value of <a>MapKmlLink</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>mklDefaultViewport</a></li>
--   <li><a>mklVisibility</a></li>
--   <li><a>mklName</a></li>
--   <li><a>mklType</a></li>
--   <li><a>mklKmlURL</a></li>
--   </ul>
mapKmlLink :: MapKmlLink

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mklDefaultViewport :: Lens' MapKmlLink [Double]

-- | The visibility setting of this MapKmlLink. One of "defaultOn" or
--   "defaultOff".
mklVisibility :: Lens' MapKmlLink (Maybe Text)

-- | The name of this MapKmlLink.
mklName :: Lens' MapKmlLink (Maybe Text)

-- | Identifies this object as a MapKmlLink.
mklType :: Lens' MapKmlLink (Maybe MapKmlLinkType)

-- | The URL to the KML file represented by this MapKmlLink.
mklKmlURL :: Lens' MapKmlLink (Maybe Text)

-- | The type of rasters contained within this RasterCollection.
data RasterCollectionRasterType

-- | <pre>
--   image
--   </pre>
RCRTImage :: RasterCollectionRasterType

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RastersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RLROwner :: RastersListRole

-- | <tt>reader</tt> The user can read the asset.
RLRReader :: RastersListRole

-- | <tt>writer</tt> The user can read and write the asset.
RLRWriter :: RastersListRole

-- | The response returned by a call to mapsengine.permissions.batchUpdate.
--   
--   <i>See:</i> <a>permissionsBatchUpdateResponse</a> smart constructor.
data PermissionsBatchUpdateResponse

-- | Creates a value of <a>PermissionsBatchUpdateResponse</a> with the
--   minimum fields required to make a request.
permissionsBatchUpdateResponse :: PermissionsBatchUpdateResponse
data GeoJSONLineString

-- | Creates a value of <a>GeoJSONLineString</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>gjlsCoordinates</a></li>
--   <li><a>gjlsType</a></li>
--   </ul>
geoJSONLineString :: GeoJSONLineString

-- | An array of two or more positions, representing a line.
gjlsCoordinates :: Lens' GeoJSONLineString [[Double]]

-- | Identifies this object as a GeoJsonLineString.
gjlsType :: Lens' GeoJSONLineString (Maybe GeoJSONLineStringType)

-- | The response returned by a call to maps.List.published.
--   
--   <i>See:</i> <a>publishedMapsListResponse</a> smart constructor.
data PublishedMapsListResponse

-- | Creates a value of <a>PublishedMapsListResponse</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>pmlrMaps</a></li>
--   <li><a>pmlrNextPageToken</a></li>
--   </ul>
publishedMapsListResponse :: PublishedMapsListResponse

-- | Resources returned.
pmlrMaps :: Lens' PublishedMapsListResponse [PublishedMap]

-- | Next page token.
pmlrNextPageToken :: Lens' PublishedMapsListResponse (Maybe ByteString)

-- | The response returned by a call to maps.List.
--   
--   <i>See:</i> <a>mapsListResponse</a> smart constructor.
data MapsListResponse

-- | Creates a value of <a>MapsListResponse</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>mlrMaps</a></li>
--   <li><a>mlrNextPageToken</a></li>
--   </ul>
mapsListResponse :: MapsListResponse

-- | Resources returned.
mlrMaps :: Lens' MapsListResponse [Map]

-- | Next page token.
mlrNextPageToken :: Lens' MapsListResponse (Maybe ByteString)

-- | The publishing status of this map.
data MapPublishingStatus

-- | <pre>
--   notPublished
--   </pre>
MPSNotPublished :: MapPublishingStatus

-- | <pre>
--   published
--   </pre>
MPSPublished :: MapPublishingStatus

-- | A heterogenous collection of GeoJsonGeometry objects.
--   
--   <i>See:</i> <a>geoJSONGeometryCollection</a> smart constructor.
data GeoJSONGeometryCollection

-- | Creates a value of <a>GeoJSONGeometryCollection</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>gjgcGeometries</a></li>
--   <li><a>gjgcType</a></li>
--   </ul>
geoJSONGeometryCollection :: GeoJSONGeometryCollection

-- | An array of geometry objects. There must be at least 2 different types
--   of geometries in the array.
gjgcGeometries :: Lens' GeoJSONGeometryCollection [GeoJSONGeometry]

-- | Identifies this object as a GeoJsonGeometryCollection.
gjgcType :: Lens' GeoJSONGeometryCollection (Maybe GeoJSONGeometryCollectionType)
data GeoJSONPolygon

-- | Creates a value of <a>GeoJSONPolygon</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>gjpCoordinates</a></li>
--   <li><a>gjpType</a></li>
--   </ul>
geoJSONPolygon :: GeoJSONPolygon

-- | An array of LinearRings. A LinearRing is a GeoJsonLineString which is
--   closed (that is, the first and last GeoJsonPositions are equal), and
--   which contains at least four GeoJsonPositions. For polygons with
--   multiple rings, the first LinearRing is the exterior ring, and any
--   subsequent rings are interior rings (that is, holes).
gjpCoordinates :: Lens' GeoJSONPolygon [[[Double]]]

-- | Identifies this object as a GeoJsonPolygon.
gjpType :: Lens' GeoJSONPolygon (Maybe GeoJSONPolygonType)
data GeoJSONPoint

-- | Creates a value of <a>GeoJSONPoint</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>gjsonpCoordinates</a></li>
--   <li><a>gjsonpType</a></li>
--   </ul>
geoJSONPoint :: GeoJSONPoint

-- | A single GeoJsonPosition, specifying the location of the point.
gjsonpCoordinates :: Lens' GeoJSONPoint [Double]

-- | Identifies this object as a GeoJsonPoint.
gjsonpType :: Lens' GeoJSONPoint (Maybe GeoJSONPointType)

-- | The response returned by a call to layers.List. Note: The list
--   response does not include all the fields available in a layer. Refer
--   to the layer resource description for details of the fields that are
--   not included. You'll need to send a get request to retrieve the
--   additional fields for each layer.
--   
--   <i>See:</i> <a>layersListResponse</a> smart constructor.
data LayersListResponse

-- | Creates a value of <a>LayersListResponse</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>llrNextPageToken</a></li>
--   <li><a>llrLayers</a></li>
--   </ul>
layersListResponse :: LayersListResponse

-- | Next page token.
llrNextPageToken :: Lens' LayersListResponse (Maybe ByteString)

-- | Resources returned.
llrLayers :: Lens' LayersListResponse [Layer]

-- | The response returned by a call to rasters.List.
--   
--   <i>See:</i> <a>rastersListResponse</a> smart constructor.
data RastersListResponse

-- | Creates a value of <a>RastersListResponse</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>rlrNextPageToken</a></li>
--   <li><a>rlrRasters</a></li>
--   </ul>
rastersListResponse :: RastersListResponse

-- | Next page token.
rlrNextPageToken :: Lens' RastersListResponse (Maybe Text)

-- | Resources returned.
rlrRasters :: Lens' RastersListResponse [Raster]

-- | The upload status of the file.
data FileUploadStatus

-- | <pre>
--   canceled
--   </pre>
FUSCanceled :: FileUploadStatus

-- | <pre>
--   complete
--   </pre>
FUSComplete :: FileUploadStatus

-- | <pre>
--   failed
--   </pre>
FUSFailed :: FileUploadStatus

-- | <pre>
--   inProgress
--   </pre>
FUSInProgress :: FileUploadStatus

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data MapsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
MLROwner :: MapsListRole

-- | <tt>reader</tt> The user can read the asset.
MLRReader :: MapsListRole

-- | <tt>writer</tt> The user can read and write the asset.
MLRWriter :: MapsListRole
data TablesGetVersion

-- | <tt>draft</tt> The draft version.
TGVDraft :: TablesGetVersion

-- | <tt>published</tt> The published version.
TGVPublished :: TablesGetVersion
data PermissionsListResponse

-- | Creates a value of <a>PermissionsListResponse</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>plrPermissions</a></li>
--   </ul>
permissionsListResponse :: PermissionsListResponse

-- | The set of permissions associated with this asset.
plrPermissions :: Lens' PermissionsListResponse [Permission]

-- | The processing status of this table.
data TableProcessingStatus

-- | <pre>
--   complete
--   </pre>
TPSComplete :: TableProcessingStatus

-- | <pre>
--   failed
--   </pre>
TPSFailed :: TableProcessingStatus

-- | <pre>
--   notReady
--   </pre>
TPSNotReady :: TableProcessingStatus

-- | <pre>
--   processing
--   </pre>
TPSProcessing :: TableProcessingStatus

-- | <pre>
--   ready
--   </pre>
TPSReady :: TableProcessingStatus

-- | Style for lines.
--   
--   <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>lsStroke</a></li>
--   <li><a>lsBOrder</a></li>
--   <li><a>lsDash</a></li>
--   <li><a>lsLabel</a></li>
--   </ul>
lineStyle :: LineStyle

-- | Stroke of the line.
lsStroke :: Lens' LineStyle (Maybe LineStyleStroke)

-- | Border of the line. 0 &lt; border.width &lt;= 5.
lsBOrder :: Lens' LineStyle (Maybe BOrder)

-- | Dash defines the pattern of the line, the values are pixel lengths of
--   alternating dash and gap. If dash is not provided, then it means a
--   solid line. Dash can contain up to 10 values and must contain even
--   number of values.
lsDash :: Lens' LineStyle [Double]

-- | Label style for the line.
lsLabel :: Lens' LineStyle (Maybe LabelStyle)

-- | The response returned by a call to layers.List.published.
--   
--   <i>See:</i> <a>publishedLayersListResponse</a> smart constructor.
data PublishedLayersListResponse

-- | Creates a value of <a>PublishedLayersListResponse</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>pllrNextPageToken</a></li>
--   <li><a>pllrLayers</a></li>
--   </ul>
publishedLayersListResponse :: PublishedLayersListResponse

-- | Next page token.
pllrNextPageToken :: Lens' PublishedLayersListResponse (Maybe ByteString)

-- | Resources returned.
pllrLayers :: Lens' PublishedLayersListResponse [PublishedLayer]


-- | Return metadata for a particular asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.assets.get</tt>.
module Network.Google.Resource.MapsEngine.Assets.Get

-- | A resource alias for <tt>mapsengine.assets.get</tt> method which the
--   <a>AssetsGet</a> request conforms to.
type AssetsGetResource = "mapsengine" :> ("v1" :> ("assets" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Asset))))

-- | Creates a value of <a>AssetsGet</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>agId</a></li>
--   </ul>
assetsGet :: Text -> AssetsGet

-- | Return metadata for a particular asset.
--   
--   <i>See:</i> <a>assetsGet</a> smart constructor.
data AssetsGet

-- | The ID of the asset.
agId :: Lens' AssetsGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Assets.Get.AssetsGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Assets.Get.AssetsGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Assets.Get.AssetsGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Assets.Get.AssetsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Assets.Get.AssetsGet


-- | Return all assets readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.assets.list</tt>.
module Network.Google.Resource.MapsEngine.Assets.List

-- | A resource alias for <tt>mapsengine.assets.list</tt> method which the
--   <a>AssetsList</a> request conforms to.
type AssetsListResource = "mapsengine" :> ("v1" :> ("assets" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" AssetsListRole :> (QueryParam "bbox" Text :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "type" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] AssetsListResponse))))))))))))))))

-- | Creates a value of <a>AssetsList</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>alCreatedAfter</a></li>
--   <li><a>alCreatorEmail</a></li>
--   <li><a>alRole</a></li>
--   <li><a>alBbox</a></li>
--   <li><a>alModifiedAfter</a></li>
--   <li><a>alModifiedBefore</a></li>
--   <li><a>alPageToken</a></li>
--   <li><a>alProjectId</a></li>
--   <li><a>alType</a></li>
--   <li><a>alSearch</a></li>
--   <li><a>alMaxResults</a></li>
--   <li><a>alTags</a></li>
--   <li><a>alCreatedBefore</a></li>
--   </ul>
assetsList :: AssetsList

-- | Return all assets readable by the current user.
--   
--   <i>See:</i> <a>assetsList</a> smart constructor.
data AssetsList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
alCreatedAfter :: Lens' AssetsList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
alCreatorEmail :: Lens' AssetsList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
alRole :: Lens' AssetsList (Maybe AssetsListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
alBbox :: Lens' AssetsList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
alModifiedAfter :: Lens' AssetsList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
alModifiedBefore :: Lens' AssetsList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
alPageToken :: Lens' AssetsList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
alProjectId :: Lens' AssetsList (Maybe Text)

-- | A comma separated list of asset types. Returned assets will have one
--   of the types from the provided list. Supported values are 'map',
--   'layer', 'rasterCollection' and 'table'.
alType :: Lens' AssetsList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
alSearch :: Lens' AssetsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
alMaxResults :: Lens' AssetsList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
alTags :: Lens' AssetsList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
alCreatedBefore :: Lens' AssetsList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Assets.List.AssetsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Assets.List.AssetsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Assets.List.AssetsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Assets.List.AssetsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Assets.List.AssetsList


-- | Return all parent ids of the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.assets.parents.list</tt>.
module Network.Google.Resource.MapsEngine.Assets.Parents.List

-- | A resource alias for <tt>mapsengine.assets.parents.list</tt> method
--   which the <a>AssetsParentsList</a> request conforms to.
type AssetsParentsListResource = "mapsengine" :> ("v1" :> ("assets" :> (Capture "id" Text :> ("parents" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ParentsListResponse)))))))

-- | Creates a value of <a>AssetsParentsList</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>aplId</a></li>
--   <li><a>aplPageToken</a></li>
--   <li><a>aplMaxResults</a></li>
--   </ul>
assetsParentsList :: Text -> AssetsParentsList

-- | Return all parent ids of the specified asset.
--   
--   <i>See:</i> <a>assetsParentsList</a> smart constructor.
data AssetsParentsList

-- | The ID of the asset whose parents will be listed.
aplId :: Lens' AssetsParentsList Text

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
aplPageToken :: Lens' AssetsParentsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
aplMaxResults :: Lens' AssetsParentsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Assets.Parents.List.AssetsParentsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Assets.Parents.List.AssetsParentsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Assets.Parents.List.AssetsParentsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Assets.Parents.List.AssetsParentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Assets.Parents.List.AssetsParentsList


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.assets.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.Assets.Permissions.List

-- | A resource alias for <tt>mapsengine.assets.permissions.list</tt>
--   method which the <a>AssetsPermissionsList</a> request conforms to.
type AssetsPermissionsListResource = "mapsengine" :> ("v1" :> ("assets" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>AssetsPermissionsList</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>assId</a></li>
--   </ul>
assetsPermissionsList :: Text -> AssetsPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>assetsPermissionsList</a> smart constructor.
data AssetsPermissionsList

-- | The ID of the asset whose permissions will be listed.
assId :: Lens' AssetsPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Assets.Permissions.List.AssetsPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Assets.Permissions.List.AssetsPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Assets.Permissions.List.AssetsPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Assets.Permissions.List.AssetsPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Assets.Permissions.List.AssetsPermissionsList


-- | Cancel processing on a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.cancelProcessing</tt>.
module Network.Google.Resource.MapsEngine.Layers.CancelProcessing

-- | A resource alias for <tt>mapsengine.layers.cancelProcessing</tt>
--   method which the <a>LayersCancelProcessing</a> request conforms to.
type LayersCancelProcessingResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("cancelProcessing" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>LayersCancelProcessing</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>lcpId</a></li>
--   </ul>
layersCancelProcessing :: Text -> LayersCancelProcessing

-- | Cancel processing on a layer asset.
--   
--   <i>See:</i> <a>layersCancelProcessing</a> smart constructor.
data LayersCancelProcessing

-- | The ID of the layer.
lcpId :: Lens' LayersCancelProcessing Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.CancelProcessing.LayersCancelProcessing
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.CancelProcessing.LayersCancelProcessing
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.CancelProcessing.LayersCancelProcessing
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.CancelProcessing.LayersCancelProcessing
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.CancelProcessing.LayersCancelProcessing


-- | Create a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.create</tt>.
module Network.Google.Resource.MapsEngine.Layers.Create

-- | A resource alias for <tt>mapsengine.layers.create</tt> method which
--   the <a>LayersCreate</a> request conforms to.
type LayersCreateResource = "mapsengine" :> ("v1" :> ("layers" :> (QueryParam "process" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Layer :> Post '[JSON] Layer)))))

-- | Creates a value of <a>LayersCreate</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>lcProcess</a></li>
--   <li><a>lcPayload</a></li>
--   </ul>
layersCreate :: Layer -> LayersCreate

-- | Create a layer asset.
--   
--   <i>See:</i> <a>layersCreate</a> smart constructor.
data LayersCreate

-- | Whether to queue the created layer for processing.
lcProcess :: Lens' LayersCreate (Maybe Bool)

-- | Multipart request metadata.
lcPayload :: Lens' LayersCreate Layer
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Create.LayersCreate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Create.LayersCreate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Create.LayersCreate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Create.LayersCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Create.LayersCreate


-- | Delete a layer.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.delete</tt>.
module Network.Google.Resource.MapsEngine.Layers.Delete

-- | A resource alias for <tt>mapsengine.layers.delete</tt> method which
--   the <a>LayersDelete</a> request conforms to.
type LayersDeleteResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>LayersDelete</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>ldId</a></li>
--   </ul>
layersDelete :: Text -> LayersDelete

-- | Delete a layer.
--   
--   <i>See:</i> <a>layersDelete</a> smart constructor.
data LayersDelete

-- | The ID of the layer. Only the layer creator or project owner are
--   permitted to delete. If the layer is published, or included in a map,
--   the request will fail. Unpublish the layer, and remove it from all
--   maps prior to deleting.
ldId :: Lens' LayersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Delete.LayersDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Delete.LayersDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Delete.LayersDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Delete.LayersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Delete.LayersDelete


-- | Return metadata for a particular layer.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.get</tt>.
module Network.Google.Resource.MapsEngine.Layers.Get

-- | A resource alias for <tt>mapsengine.layers.get</tt> method which the
--   <a>LayersGet</a> request conforms to.
type LayersGetResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> (QueryParam "version" LayersGetVersion :> (QueryParam "alt" AltJSON :> Get '[JSON] Layer)))))

-- | Creates a value of <a>LayersGet</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>lgVersion</a></li>
--   <li><a>lgId</a></li>
--   </ul>
layersGet :: Text -> LayersGet

-- | Return metadata for a particular layer.
--   
--   <i>See:</i> <a>layersGet</a> smart constructor.
data LayersGet

-- | Deprecated: The version parameter indicates which version of the layer
--   should be returned. When version is set to published, the published
--   version of the layer will be returned. Please use the
--   layers.getPublished endpoint instead.
lgVersion :: Lens' LayersGet (Maybe LayersGetVersion)

-- | The ID of the layer.
lgId :: Lens' LayersGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Get.LayersGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Get.LayersGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Get.LayersGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Get.LayersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Get.LayersGet


-- | Return the published metadata for a particular layer.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.getPublished</tt>.
module Network.Google.Resource.MapsEngine.Layers.GetPublished

-- | A resource alias for <tt>mapsengine.layers.getPublished</tt> method
--   which the <a>LayersGetPublished</a> request conforms to.
type LayersGetPublishedResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("published" :> (QueryParam "alt" AltJSON :> Get '[JSON] PublishedLayer)))))

-- | Creates a value of <a>LayersGetPublished</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>lgpId</a></li>
--   </ul>
layersGetPublished :: Text -> LayersGetPublished

-- | Return the published metadata for a particular layer.
--   
--   <i>See:</i> <a>layersGetPublished</a> smart constructor.
data LayersGetPublished

-- | The ID of the layer.
lgpId :: Lens' LayersGetPublished Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.GetPublished.LayersGetPublished
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.GetPublished.LayersGetPublished
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.GetPublished.LayersGetPublished
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.GetPublished.LayersGetPublished
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.GetPublished.LayersGetPublished


-- | Return all layers readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.list</tt>.
module Network.Google.Resource.MapsEngine.Layers.List

-- | A resource alias for <tt>mapsengine.layers.list</tt> method which the
--   <a>LayersList</a> request conforms to.
type LayersListResource = "mapsengine" :> ("v1" :> ("layers" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" LayersListRole :> (QueryParam "bbox" Text :> (QueryParam "processingStatus" LayersListProcessingStatus :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] LayersListResponse))))))))))))))))

-- | Creates a value of <a>LayersList</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>llCreatedAfter</a></li>
--   <li><a>llCreatorEmail</a></li>
--   <li><a>llRole</a></li>
--   <li><a>llBbox</a></li>
--   <li><a>llProcessingStatus</a></li>
--   <li><a>llModifiedAfter</a></li>
--   <li><a>llModifiedBefore</a></li>
--   <li><a>llPageToken</a></li>
--   <li><a>llProjectId</a></li>
--   <li><a>llSearch</a></li>
--   <li><a>llMaxResults</a></li>
--   <li><a>llTags</a></li>
--   <li><a>llCreatedBefore</a></li>
--   </ul>
layersList :: LayersList

-- | Return all layers readable by the current user.
--   
--   <i>See:</i> <a>layersList</a> smart constructor.
data LayersList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
llCreatedAfter :: Lens' LayersList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
llCreatorEmail :: Lens' LayersList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
llRole :: Lens' LayersList (Maybe LayersListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
llBbox :: Lens' LayersList (Maybe Text)
llProcessingStatus :: Lens' LayersList (Maybe LayersListProcessingStatus)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
llModifiedAfter :: Lens' LayersList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
llModifiedBefore :: Lens' LayersList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
llPageToken :: Lens' LayersList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
llProjectId :: Lens' LayersList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
llSearch :: Lens' LayersList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
llMaxResults :: Lens' LayersList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
llTags :: Lens' LayersList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
llCreatedBefore :: Lens' LayersList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.List.LayersList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.List.LayersList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.List.LayersList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.List.LayersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.List.LayersList


-- | Return all published layers readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.listPublished</tt>.
module Network.Google.Resource.MapsEngine.Layers.ListPublished

-- | A resource alias for <tt>mapsengine.layers.listPublished</tt> method
--   which the <a>LayersListPublished</a> request conforms to.
type LayersListPublishedResource = "mapsengine" :> ("v1" :> ("layers" :> ("published" :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] PublishedLayersListResponse)))))))

-- | Creates a value of <a>LayersListPublished</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>llpPageToken</a></li>
--   <li><a>llpProjectId</a></li>
--   <li><a>llpMaxResults</a></li>
--   </ul>
layersListPublished :: LayersListPublished

-- | Return all published layers readable by the current user.
--   
--   <i>See:</i> <a>layersListPublished</a> smart constructor.
data LayersListPublished

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
llpPageToken :: Lens' LayersListPublished (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
llpProjectId :: Lens' LayersListPublished (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
llpMaxResults :: Lens' LayersListPublished (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.ListPublished.LayersListPublished
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.ListPublished.LayersListPublished
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.ListPublished.LayersListPublished
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.ListPublished.LayersListPublished
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.ListPublished.LayersListPublished


-- | Return all parent ids of the specified layer.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.parents.list</tt>.
module Network.Google.Resource.MapsEngine.Layers.Parents.List

-- | A resource alias for <tt>mapsengine.layers.parents.list</tt> method
--   which the <a>LayersParentsList</a> request conforms to.
type LayersParentsListResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("parents" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ParentsListResponse)))))))

-- | Creates a value of <a>LayersParentsList</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>lId</a></li>
--   <li><a>lPageToken</a></li>
--   <li><a>lMaxResults</a></li>
--   </ul>
layersParentsList :: Text -> LayersParentsList

-- | Return all parent ids of the specified layer.
--   
--   <i>See:</i> <a>layersParentsList</a> smart constructor.
data LayersParentsList

-- | The ID of the layer whose parents will be listed.
lId :: Lens' LayersParentsList Text

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
lPageToken :: Lens' LayersParentsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
lMaxResults :: Lens' LayersParentsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Parents.List.LayersParentsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Parents.List.LayersParentsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Parents.List.LayersParentsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Parents.List.LayersParentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Parents.List.LayersParentsList


-- | Mutate a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.patch</tt>.
module Network.Google.Resource.MapsEngine.Layers.Patch

-- | A resource alias for <tt>mapsengine.layers.patch</tt> method which the
--   <a>LayersPatch</a> request conforms to.
type LayersPatchResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Layer :> Patch '[JSON] ())))))

-- | Creates a value of <a>LayersPatch</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>lppPayload</a></li>
--   <li><a>lppId</a></li>
--   </ul>
layersPatch :: Layer -> Text -> LayersPatch

-- | Mutate a layer asset.
--   
--   <i>See:</i> <a>layersPatch</a> smart constructor.
data LayersPatch

-- | Multipart request metadata.
lppPayload :: Lens' LayersPatch Layer

-- | The ID of the layer.
lppId :: Lens' LayersPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Patch.LayersPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Patch.LayersPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Patch.LayersPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Patch.LayersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Patch.LayersPatch


-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.permissions.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete

-- | A resource alias for
--   <tt>mapsengine.layers.permissions.batchDelete</tt> method which the
--   <a>LayersPermissionsBatchDelete</a> request conforms to.
type LayersPermissionsBatchDeleteResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("permissions" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchDeleteRequest :> Post '[JSON] PermissionsBatchDeleteResponse)))))))

-- | Creates a value of <a>LayersPermissionsBatchDelete</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>lpbdPayload</a></li>
--   <li><a>lpbdId</a></li>
--   </ul>
layersPermissionsBatchDelete :: PermissionsBatchDeleteRequest -> Text -> LayersPermissionsBatchDelete

-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>layersPermissionsBatchDelete</a> smart constructor.
data LayersPermissionsBatchDelete

-- | Multipart request metadata.
lpbdPayload :: Lens' LayersPermissionsBatchDelete PermissionsBatchDeleteRequest

-- | The ID of the asset from which permissions will be removed.
lpbdId :: Lens' LayersPermissionsBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete.LayersPermissionsBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete.LayersPermissionsBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete.LayersPermissionsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete.LayersPermissionsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Permissions.BatchDelete.LayersPermissionsBatchDelete


-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.permissions.batchUpdate</tt>.
module Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate

-- | A resource alias for
--   <tt>mapsengine.layers.permissions.batchUpdate</tt> method which the
--   <a>LayersPermissionsBatchUpdate</a> request conforms to.
type LayersPermissionsBatchUpdateResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("permissions" :> ("batchUpdate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchUpdateRequest :> Post '[JSON] PermissionsBatchUpdateResponse)))))))

-- | Creates a value of <a>LayersPermissionsBatchUpdate</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>lpbuPayload</a></li>
--   <li><a>lpbuId</a></li>
--   </ul>
layersPermissionsBatchUpdate :: PermissionsBatchUpdateRequest -> Text -> LayersPermissionsBatchUpdate

-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>layersPermissionsBatchUpdate</a> smart constructor.
data LayersPermissionsBatchUpdate

-- | Multipart request metadata.
lpbuPayload :: Lens' LayersPermissionsBatchUpdate PermissionsBatchUpdateRequest

-- | The ID of the asset to which permissions will be added.
lpbuId :: Lens' LayersPermissionsBatchUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate.LayersPermissionsBatchUpdate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate.LayersPermissionsBatchUpdate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate.LayersPermissionsBatchUpdate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate.LayersPermissionsBatchUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Permissions.BatchUpdate.LayersPermissionsBatchUpdate


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.Layers.Permissions.List

-- | A resource alias for <tt>mapsengine.layers.permissions.list</tt>
--   method which the <a>LayersPermissionsList</a> request conforms to.
type LayersPermissionsListResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>LayersPermissionsList</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>lplId</a></li>
--   </ul>
layersPermissionsList :: Text -> LayersPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>layersPermissionsList</a> smart constructor.
data LayersPermissionsList

-- | The ID of the asset whose permissions will be listed.
lplId :: Lens' LayersPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Permissions.List.LayersPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Permissions.List.LayersPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Permissions.List.LayersPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Permissions.List.LayersPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Permissions.List.LayersPermissionsList


-- | Process a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.process</tt>.
module Network.Google.Resource.MapsEngine.Layers.Process

-- | A resource alias for <tt>mapsengine.layers.process</tt> method which
--   the <a>LayersProcess</a> request conforms to.
type LayersProcessResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("process" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>LayersProcess</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>lpsId</a></li>
--   </ul>
layersProcess :: Text -> LayersProcess

-- | Process a layer asset.
--   
--   <i>See:</i> <a>layersProcess</a> smart constructor.
data LayersProcess

-- | The ID of the layer.
lpsId :: Lens' LayersProcess Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Process.LayersProcess
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Process.LayersProcess
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Process.LayersProcess
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Process.LayersProcess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Process.LayersProcess


-- | Publish a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.publish</tt>.
module Network.Google.Resource.MapsEngine.Layers.Publish

-- | A resource alias for <tt>mapsengine.layers.publish</tt> method which
--   the <a>LayersPublish</a> request conforms to.
type LayersPublishResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("publish" :> (QueryParam "force" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] PublishResponse))))))

-- | Creates a value of <a>LayersPublish</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>lpForce</a></li>
--   <li><a>lpId</a></li>
--   </ul>
layersPublish :: Text -> LayersPublish

-- | Publish a layer asset.
--   
--   <i>See:</i> <a>layersPublish</a> smart constructor.
data LayersPublish

-- | If set to true, the API will allow publication of the layer even if
--   it's out of date. If not true, you'll need to reprocess any
--   out-of-date layer before publishing.
lpForce :: Lens' LayersPublish (Maybe Bool)

-- | The ID of the layer.
lpId :: Lens' LayersPublish Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.Publish.LayersPublish
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.Publish.LayersPublish
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.Publish.LayersPublish
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.Publish.LayersPublish
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.Publish.LayersPublish


-- | Unpublish a layer asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.layers.unpublish</tt>.
module Network.Google.Resource.MapsEngine.Layers.UnPublish

-- | A resource alias for <tt>mapsengine.layers.unpublish</tt> method which
--   the <a>LayersUnPublish</a> request conforms to.
type LayersUnPublishResource = "mapsengine" :> ("v1" :> ("layers" :> (Capture "id" Text :> ("unpublish" :> (QueryParam "alt" AltJSON :> Post '[JSON] PublishResponse)))))

-- | Creates a value of <a>LayersUnPublish</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>lupId</a></li>
--   </ul>
layersUnPublish :: Text -> LayersUnPublish

-- | Unpublish a layer asset.
--   
--   <i>See:</i> <a>layersUnPublish</a> smart constructor.
data LayersUnPublish

-- | The ID of the layer.
lupId :: Lens' LayersUnPublish Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Layers.UnPublish.LayersUnPublish
instance Data.Data.Data Network.Google.Resource.MapsEngine.Layers.UnPublish.LayersUnPublish
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Layers.UnPublish.LayersUnPublish
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Layers.UnPublish.LayersUnPublish
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Layers.UnPublish.LayersUnPublish


-- | Create a map asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.create</tt>.
module Network.Google.Resource.MapsEngine.Maps.Create

-- | A resource alias for <tt>mapsengine.maps.create</tt> method which the
--   <a>MapsCreate</a> request conforms to.
type MapsCreateResource = "mapsengine" :> ("v1" :> ("maps" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Map :> Post '[JSON] Map))))

-- | Creates a value of <a>MapsCreate</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>mcPayload</a></li>
--   </ul>
mapsCreate :: Map -> MapsCreate

-- | Create a map asset.
--   
--   <i>See:</i> <a>mapsCreate</a> smart constructor.
data MapsCreate

-- | Multipart request metadata.
mcPayload :: Lens' MapsCreate Map
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Create.MapsCreate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Create.MapsCreate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Create.MapsCreate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Create.MapsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Create.MapsCreate


-- | Delete a map.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.delete</tt>.
module Network.Google.Resource.MapsEngine.Maps.Delete

-- | A resource alias for <tt>mapsengine.maps.delete</tt> method which the
--   <a>MapsDelete</a> request conforms to.
type MapsDeleteResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>MapsDelete</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>mdId</a></li>
--   </ul>
mapsDelete :: Text -> MapsDelete

-- | Delete a map.
--   
--   <i>See:</i> <a>mapsDelete</a> smart constructor.
data MapsDelete

-- | The ID of the map. Only the map creator or project owner are permitted
--   to delete. If the map is published the request will fail. Unpublish
--   the map prior to deleting.
mdId :: Lens' MapsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Delete.MapsDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Delete.MapsDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Delete.MapsDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Delete.MapsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Delete.MapsDelete


-- | Return metadata for a particular map.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.get</tt>.
module Network.Google.Resource.MapsEngine.Maps.Get

-- | A resource alias for <tt>mapsengine.maps.get</tt> method which the
--   <a>MapsGet</a> request conforms to.
type MapsGetResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> (QueryParam "version" MapsGetVersion :> (QueryParam "alt" AltJSON :> Get '[JSON] Map)))))

-- | Creates a value of <a>MapsGet</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>mgVersion</a></li>
--   <li><a>mgId</a></li>
--   </ul>
mapsGet :: Text -> MapsGet

-- | Return metadata for a particular map.
--   
--   <i>See:</i> <a>mapsGet</a> smart constructor.
data MapsGet

-- | Deprecated: The version parameter indicates which version of the map
--   should be returned. When version is set to published, the published
--   version of the map will be returned. Please use the maps.getPublished
--   endpoint instead.
mgVersion :: Lens' MapsGet (Maybe MapsGetVersion)

-- | The ID of the map.
mgId :: Lens' MapsGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Get.MapsGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Get.MapsGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Get.MapsGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Get.MapsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Get.MapsGet


-- | Return the published metadata for a particular map.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.getPublished</tt>.
module Network.Google.Resource.MapsEngine.Maps.GetPublished

-- | A resource alias for <tt>mapsengine.maps.getPublished</tt> method
--   which the <a>MapsGetPublished</a> request conforms to.
type MapsGetPublishedResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("published" :> (QueryParam "alt" AltJSON :> Get '[JSON] PublishedMap)))))

-- | Creates a value of <a>MapsGetPublished</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>mgpId</a></li>
--   </ul>
mapsGetPublished :: Text -> MapsGetPublished

-- | Return the published metadata for a particular map.
--   
--   <i>See:</i> <a>mapsGetPublished</a> smart constructor.
data MapsGetPublished

-- | The ID of the map.
mgpId :: Lens' MapsGetPublished Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.GetPublished.MapsGetPublished
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.GetPublished.MapsGetPublished
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.GetPublished.MapsGetPublished
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.GetPublished.MapsGetPublished
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.GetPublished.MapsGetPublished


-- | Return all maps readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.list</tt>.
module Network.Google.Resource.MapsEngine.Maps.List

-- | A resource alias for <tt>mapsengine.maps.list</tt> method which the
--   <a>MapsList</a> request conforms to.
type MapsListResource = "mapsengine" :> ("v1" :> ("maps" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" MapsListRole :> (QueryParam "bbox" Text :> (QueryParam "processingStatus" MapsListProcessingStatus :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] MapsListResponse))))))))))))))))

-- | Creates a value of <a>MapsList</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>mlCreatedAfter</a></li>
--   <li><a>mlCreatorEmail</a></li>
--   <li><a>mlRole</a></li>
--   <li><a>mlBbox</a></li>
--   <li><a>mlProcessingStatus</a></li>
--   <li><a>mlModifiedAfter</a></li>
--   <li><a>mlModifiedBefore</a></li>
--   <li><a>mlPageToken</a></li>
--   <li><a>mlProjectId</a></li>
--   <li><a>mlSearch</a></li>
--   <li><a>mlMaxResults</a></li>
--   <li><a>mlTags</a></li>
--   <li><a>mlCreatedBefore</a></li>
--   </ul>
mapsList :: MapsList

-- | Return all maps readable by the current user.
--   
--   <i>See:</i> <a>mapsList</a> smart constructor.
data MapsList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
mlCreatedAfter :: Lens' MapsList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
mlCreatorEmail :: Lens' MapsList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
mlRole :: Lens' MapsList (Maybe MapsListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
mlBbox :: Lens' MapsList (Maybe Text)
mlProcessingStatus :: Lens' MapsList (Maybe MapsListProcessingStatus)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
mlModifiedAfter :: Lens' MapsList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
mlModifiedBefore :: Lens' MapsList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
mlPageToken :: Lens' MapsList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
mlProjectId :: Lens' MapsList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
mlSearch :: Lens' MapsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
mlMaxResults :: Lens' MapsList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
mlTags :: Lens' MapsList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
mlCreatedBefore :: Lens' MapsList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.List.MapsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.List.MapsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.List.MapsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.List.MapsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.List.MapsList


-- | Return all published maps readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.listPublished</tt>.
module Network.Google.Resource.MapsEngine.Maps.ListPublished

-- | A resource alias for <tt>mapsengine.maps.listPublished</tt> method
--   which the <a>MapsListPublished</a> request conforms to.
type MapsListPublishedResource = "mapsengine" :> ("v1" :> ("maps" :> ("published" :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] PublishedMapsListResponse)))))))

-- | Creates a value of <a>MapsListPublished</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>mlpPageToken</a></li>
--   <li><a>mlpProjectId</a></li>
--   <li><a>mlpMaxResults</a></li>
--   </ul>
mapsListPublished :: MapsListPublished

-- | Return all published maps readable by the current user.
--   
--   <i>See:</i> <a>mapsListPublished</a> smart constructor.
data MapsListPublished

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
mlpPageToken :: Lens' MapsListPublished (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
mlpProjectId :: Lens' MapsListPublished (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
mlpMaxResults :: Lens' MapsListPublished (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.ListPublished.MapsListPublished
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.ListPublished.MapsListPublished
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.ListPublished.MapsListPublished
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.ListPublished.MapsListPublished
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.ListPublished.MapsListPublished


-- | Mutate a map asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.patch</tt>.
module Network.Google.Resource.MapsEngine.Maps.Patch

-- | A resource alias for <tt>mapsengine.maps.patch</tt> method which the
--   <a>MapsPatch</a> request conforms to.
type MapsPatchResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Map :> Patch '[JSON] ())))))

-- | Creates a value of <a>MapsPatch</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>mpPayload</a></li>
--   <li><a>mpId</a></li>
--   </ul>
mapsPatch :: Map -> Text -> MapsPatch

-- | Mutate a map asset.
--   
--   <i>See:</i> <a>mapsPatch</a> smart constructor.
data MapsPatch

-- | Multipart request metadata.
mpPayload :: Lens' MapsPatch Map

-- | The ID of the map.
mpId :: Lens' MapsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Patch.MapsPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Patch.MapsPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Patch.MapsPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Patch.MapsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Patch.MapsPatch


-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.permissions.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete

-- | A resource alias for <tt>mapsengine.maps.permissions.batchDelete</tt>
--   method which the <a>MapsPermissionsBatchDelete</a> request conforms
--   to.
type MapsPermissionsBatchDeleteResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("permissions" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchDeleteRequest :> Post '[JSON] PermissionsBatchDeleteResponse)))))))

-- | Creates a value of <a>MapsPermissionsBatchDelete</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>mpbdPayload</a></li>
--   <li><a>mpbdId</a></li>
--   </ul>
mapsPermissionsBatchDelete :: PermissionsBatchDeleteRequest -> Text -> MapsPermissionsBatchDelete

-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>mapsPermissionsBatchDelete</a> smart constructor.
data MapsPermissionsBatchDelete

-- | Multipart request metadata.
mpbdPayload :: Lens' MapsPermissionsBatchDelete PermissionsBatchDeleteRequest

-- | The ID of the asset from which permissions will be removed.
mpbdId :: Lens' MapsPermissionsBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete.MapsPermissionsBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete.MapsPermissionsBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete.MapsPermissionsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete.MapsPermissionsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Permissions.BatchDelete.MapsPermissionsBatchDelete


-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.permissions.batchUpdate</tt>.
module Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate

-- | A resource alias for <tt>mapsengine.maps.permissions.batchUpdate</tt>
--   method which the <a>MapsPermissionsBatchUpdate</a> request conforms
--   to.
type MapsPermissionsBatchUpdateResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("permissions" :> ("batchUpdate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchUpdateRequest :> Post '[JSON] PermissionsBatchUpdateResponse)))))))

-- | Creates a value of <a>MapsPermissionsBatchUpdate</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>mpbuPayload</a></li>
--   <li><a>mpbuId</a></li>
--   </ul>
mapsPermissionsBatchUpdate :: PermissionsBatchUpdateRequest -> Text -> MapsPermissionsBatchUpdate

-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>mapsPermissionsBatchUpdate</a> smart constructor.
data MapsPermissionsBatchUpdate

-- | Multipart request metadata.
mpbuPayload :: Lens' MapsPermissionsBatchUpdate PermissionsBatchUpdateRequest

-- | The ID of the asset to which permissions will be added.
mpbuId :: Lens' MapsPermissionsBatchUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate.MapsPermissionsBatchUpdate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate.MapsPermissionsBatchUpdate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate.MapsPermissionsBatchUpdate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate.MapsPermissionsBatchUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Permissions.BatchUpdate.MapsPermissionsBatchUpdate


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.Maps.Permissions.List

-- | A resource alias for <tt>mapsengine.maps.permissions.list</tt> method
--   which the <a>MapsPermissionsList</a> request conforms to.
type MapsPermissionsListResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>MapsPermissionsList</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>mplId</a></li>
--   </ul>
mapsPermissionsList :: Text -> MapsPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>mapsPermissionsList</a> smart constructor.
data MapsPermissionsList

-- | The ID of the asset whose permissions will be listed.
mplId :: Lens' MapsPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Permissions.List.MapsPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Permissions.List.MapsPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Permissions.List.MapsPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Permissions.List.MapsPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Permissions.List.MapsPermissionsList


-- | Publish a map asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.publish</tt>.
module Network.Google.Resource.MapsEngine.Maps.Publish

-- | A resource alias for <tt>mapsengine.maps.publish</tt> method which the
--   <a>MapsPublish</a> request conforms to.
type MapsPublishResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("publish" :> (QueryParam "force" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] PublishResponse))))))

-- | Creates a value of <a>MapsPublish</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>mapForce</a></li>
--   <li><a>mapId</a></li>
--   </ul>
mapsPublish :: Text -> MapsPublish

-- | Publish a map asset.
--   
--   <i>See:</i> <a>mapsPublish</a> smart constructor.
data MapsPublish

-- | If set to true, the API will allow publication of the map even if it's
--   out of date. If false, the map must have a processingStatus of
--   complete before publishing.
mapForce :: Lens' MapsPublish (Maybe Bool)

-- | The ID of the map.
mapId :: Lens' MapsPublish Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.Publish.MapsPublish
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.Publish.MapsPublish
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.Publish.MapsPublish
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.Publish.MapsPublish
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.Publish.MapsPublish


-- | Unpublish a map asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.maps.unpublish</tt>.
module Network.Google.Resource.MapsEngine.Maps.UnPublish

-- | A resource alias for <tt>mapsengine.maps.unpublish</tt> method which
--   the <a>MapsUnPublish</a> request conforms to.
type MapsUnPublishResource = "mapsengine" :> ("v1" :> ("maps" :> (Capture "id" Text :> ("unpublish" :> (QueryParam "alt" AltJSON :> Post '[JSON] PublishResponse)))))

-- | Creates a value of <a>MapsUnPublish</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>mupId</a></li>
--   </ul>
mapsUnPublish :: Text -> MapsUnPublish

-- | Unpublish a map asset.
--   
--   <i>See:</i> <a>mapsUnPublish</a> smart constructor.
data MapsUnPublish

-- | The ID of the map.
mupId :: Lens' MapsUnPublish Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Maps.UnPublish.MapsUnPublish
instance Data.Data.Data Network.Google.Resource.MapsEngine.Maps.UnPublish.MapsUnPublish
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Maps.UnPublish.MapsUnPublish
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Maps.UnPublish.MapsUnPublish
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Maps.UnPublish.MapsUnPublish


-- | Create an icon.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.projects.icons.create</tt>.
module Network.Google.Resource.MapsEngine.Projects.Icons.Create

-- | A resource alias for <tt>mapsengine.projects.icons.create</tt> method
--   which the <a>ProjectsIconsCreate</a> request conforms to.
type ProjectsIconsCreateResource = ("mapsengine" :> ("v1" :> ("projects" :> (Capture "projectId" Text :> ("icons" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Icon :> Post '[JSON] Icon))))))) :<|> ("upload" :> ("mapsengine" :> ("v1" :> ("projects" :> (Capture "projectId" Text :> ("icons" :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] Icon :> Post '[JSON] Icon)))))))))

-- | Creates a value of <a>ProjectsIconsCreate</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>picPayload</a></li>
--   <li><a>picProjectId</a></li>
--   </ul>
projectsIconsCreate :: Icon -> Text -> ProjectsIconsCreate

-- | Create an icon.
--   
--   <i>See:</i> <a>projectsIconsCreate</a> smart constructor.
data ProjectsIconsCreate

-- | Multipart request metadata.
picPayload :: Lens' ProjectsIconsCreate Icon

-- | The ID of the project.
picProjectId :: Lens' ProjectsIconsCreate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.MapsEngine.Projects.Icons.Create.ProjectsIconsCreate)


-- | Return an icon or its associated metadata
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.projects.icons.get</tt>.
module Network.Google.Resource.MapsEngine.Projects.Icons.Get

-- | A resource alias for <tt>mapsengine.projects.icons.get</tt> method
--   which the <a>ProjectsIconsGet</a> request conforms to.
type ProjectsIconsGetResource = ("mapsengine" :> ("v1" :> ("projects" :> (Capture "projectId" Text :> ("icons" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Icon))))))) :<|> ("mapsengine" :> ("v1" :> ("projects" :> (Capture "projectId" Text :> ("icons" :> (Capture "id" Text :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))

-- | Creates a value of <a>ProjectsIconsGet</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>pigId</a></li>
--   <li><a>pigProjectId</a></li>
--   </ul>
projectsIconsGet :: Text -> Text -> ProjectsIconsGet

-- | Return an icon or its associated metadata
--   
--   <i>See:</i> <a>projectsIconsGet</a> smart constructor.
data ProjectsIconsGet

-- | The ID of the icon.
pigId :: Lens' ProjectsIconsGet Text

-- | The ID of the project.
pigProjectId :: Lens' ProjectsIconsGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.MapsEngine.Projects.Icons.Get.ProjectsIconsGet)


-- | Return all icons in the current project
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.projects.icons.list</tt>.
module Network.Google.Resource.MapsEngine.Projects.Icons.List

-- | A resource alias for <tt>mapsengine.projects.icons.list</tt> method
--   which the <a>ProjectsIconsList</a> request conforms to.
type ProjectsIconsListResource = "mapsengine" :> ("v1" :> ("projects" :> (Capture "projectId" Text :> ("icons" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] IconsListResponse)))))))

-- | Creates a value of <a>ProjectsIconsList</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>pilPageToken</a></li>
--   <li><a>pilProjectId</a></li>
--   <li><a>pilMaxResults</a></li>
--   </ul>
projectsIconsList :: Text -> ProjectsIconsList

-- | Return all icons in the current project
--   
--   <i>See:</i> <a>projectsIconsList</a> smart constructor.
data ProjectsIconsList

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
pilPageToken :: Lens' ProjectsIconsList (Maybe Text)

-- | The ID of the project.
pilProjectId :: Lens' ProjectsIconsList Text

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
pilMaxResults :: Lens' ProjectsIconsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Projects.Icons.List.ProjectsIconsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Projects.Icons.List.ProjectsIconsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Projects.Icons.List.ProjectsIconsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Projects.Icons.List.ProjectsIconsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Projects.Icons.List.ProjectsIconsList


-- | Return all projects readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.projects.list</tt>.
module Network.Google.Resource.MapsEngine.Projects.List

-- | A resource alias for <tt>mapsengine.projects.list</tt> method which
--   the <a>ProjectsList</a> request conforms to.
type ProjectsListResource = "mapsengine" :> ("v1" :> ("projects" :> (QueryParam "alt" AltJSON :> Get '[JSON] ProjectsListResponse)))

-- | Creates a value of <a>ProjectsList</a> with the minimum fields
--   required to make a request.
projectsList :: ProjectsList

-- | Return all projects readable by the current user.
--   
--   <i>See:</i> <a>projectsList</a> smart constructor.
data ProjectsList
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Projects.List.ProjectsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Projects.List.ProjectsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Projects.List.ProjectsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Projects.List.ProjectsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Projects.List.ProjectsList


-- | Cancel processing on a raster collection asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.cancelProcessing</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.cancelProcessing</tt> method which
--   the <a>RasterCollectionsCancelProcessing</a> request conforms to.
type RasterCollectionsCancelProcessingResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("cancelProcessing" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>RasterCollectionsCancelProcessing</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>rccpId</a></li>
--   </ul>
rasterCollectionsCancelProcessing :: Text -> RasterCollectionsCancelProcessing

-- | Cancel processing on a raster collection asset.
--   
--   <i>See:</i> <a>rasterCollectionsCancelProcessing</a> smart
--   constructor.
data RasterCollectionsCancelProcessing

-- | The ID of the raster collection.
rccpId :: Lens' RasterCollectionsCancelProcessing Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing.RasterCollectionsCancelProcessing
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing.RasterCollectionsCancelProcessing
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing.RasterCollectionsCancelProcessing
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing.RasterCollectionsCancelProcessing
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.CancelProcessing.RasterCollectionsCancelProcessing


-- | Create a raster collection asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.create</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Create

-- | A resource alias for <tt>mapsengine.rasterCollections.create</tt>
--   method which the <a>RasterCollectionsCreate</a> request conforms to.
type RasterCollectionsCreateResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RasterCollection :> Post '[JSON] RasterCollection))))

-- | Creates a value of <a>RasterCollectionsCreate</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>rccPayload</a></li>
--   </ul>
rasterCollectionsCreate :: RasterCollection -> RasterCollectionsCreate

-- | Create a raster collection asset.
--   
--   <i>See:</i> <a>rasterCollectionsCreate</a> smart constructor.
data RasterCollectionsCreate

-- | Multipart request metadata.
rccPayload :: Lens' RasterCollectionsCreate RasterCollection
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Create.RasterCollectionsCreate
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Create.RasterCollectionsCreate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Create.RasterCollectionsCreate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Create.RasterCollectionsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Create.RasterCollectionsCreate


-- | Delete a raster collection.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.delete</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Delete

-- | A resource alias for <tt>mapsengine.rasterCollections.delete</tt>
--   method which the <a>RasterCollectionsDelete</a> request conforms to.
type RasterCollectionsDeleteResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>RasterCollectionsDelete</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>rcdId</a></li>
--   </ul>
rasterCollectionsDelete :: Text -> RasterCollectionsDelete

-- | Delete a raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsDelete</a> smart constructor.
data RasterCollectionsDelete

-- | The ID of the raster collection. Only the raster collection creator or
--   project owner are permitted to delete. If the rastor collection is
--   included in a layer, the request will fail. Remove the raster
--   collection from all layers prior to deleting.
rcdId :: Lens' RasterCollectionsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Delete.RasterCollectionsDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Delete.RasterCollectionsDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Delete.RasterCollectionsDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Delete.RasterCollectionsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Delete.RasterCollectionsDelete


-- | Return metadata for a particular raster collection.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.get</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Get

-- | A resource alias for <tt>mapsengine.rasterCollections.get</tt> method
--   which the <a>RasterCollectionsGet</a> request conforms to.
type RasterCollectionsGetResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] RasterCollection))))

-- | Creates a value of <a>RasterCollectionsGet</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>rcgId</a></li>
--   </ul>
rasterCollectionsGet :: Text -> RasterCollectionsGet

-- | Return metadata for a particular raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsGet</a> smart constructor.
data RasterCollectionsGet

-- | The ID of the raster collection.
rcgId :: Lens' RasterCollectionsGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Get.RasterCollectionsGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Get.RasterCollectionsGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Get.RasterCollectionsGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Get.RasterCollectionsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Get.RasterCollectionsGet


-- | Return all raster collections readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.list</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.List

-- | A resource alias for <tt>mapsengine.rasterCollections.list</tt> method
--   which the <a>RasterCollectionsList</a> request conforms to.
type RasterCollectionsListResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" RasterCollectionsListRole :> (QueryParam "bbox" Text :> (QueryParam "processingStatus" RasterCollectionsListProcessingStatus :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] RasterCollectionsListResponse))))))))))))))))

-- | Creates a value of <a>RasterCollectionsList</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>rclCreatedAfter</a></li>
--   <li><a>rclCreatorEmail</a></li>
--   <li><a>rclRole</a></li>
--   <li><a>rclBbox</a></li>
--   <li><a>rclProcessingStatus</a></li>
--   <li><a>rclModifiedAfter</a></li>
--   <li><a>rclModifiedBefore</a></li>
--   <li><a>rclPageToken</a></li>
--   <li><a>rclProjectId</a></li>
--   <li><a>rclSearch</a></li>
--   <li><a>rclMaxResults</a></li>
--   <li><a>rclTags</a></li>
--   <li><a>rclCreatedBefore</a></li>
--   </ul>
rasterCollectionsList :: RasterCollectionsList

-- | Return all raster collections readable by the current user.
--   
--   <i>See:</i> <a>rasterCollectionsList</a> smart constructor.
data RasterCollectionsList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
rclCreatedAfter :: Lens' RasterCollectionsList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
rclCreatorEmail :: Lens' RasterCollectionsList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
rclRole :: Lens' RasterCollectionsList (Maybe RasterCollectionsListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
rclBbox :: Lens' RasterCollectionsList (Maybe Text)
rclProcessingStatus :: Lens' RasterCollectionsList (Maybe RasterCollectionsListProcessingStatus)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
rclModifiedAfter :: Lens' RasterCollectionsList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
rclModifiedBefore :: Lens' RasterCollectionsList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
rclPageToken :: Lens' RasterCollectionsList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
rclProjectId :: Lens' RasterCollectionsList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
rclSearch :: Lens' RasterCollectionsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
rclMaxResults :: Lens' RasterCollectionsList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
rclTags :: Lens' RasterCollectionsList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
rclCreatedBefore :: Lens' RasterCollectionsList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.List.RasterCollectionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.List.RasterCollectionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.List.RasterCollectionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.List.RasterCollectionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.List.RasterCollectionsList


-- | Return all parent ids of the specified raster collection.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.parents.list</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Parents.List

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.parents.list</tt> method which the
--   <a>RasterCollectionsParentsList</a> request conforms to.
type RasterCollectionsParentsListResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("parents" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ParentsListResponse)))))))

-- | Creates a value of <a>RasterCollectionsParentsList</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>rcplcId</a></li>
--   <li><a>rcplcPageToken</a></li>
--   <li><a>rcplcMaxResults</a></li>
--   </ul>
rasterCollectionsParentsList :: Text -> RasterCollectionsParentsList

-- | Return all parent ids of the specified raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsParentsList</a> smart constructor.
data RasterCollectionsParentsList

-- | The ID of the raster collection whose parents will be listed.
rcplcId :: Lens' RasterCollectionsParentsList Text

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
rcplcPageToken :: Lens' RasterCollectionsParentsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
rcplcMaxResults :: Lens' RasterCollectionsParentsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Parents.List.RasterCollectionsParentsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Parents.List.RasterCollectionsParentsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Parents.List.RasterCollectionsParentsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Parents.List.RasterCollectionsParentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Parents.List.RasterCollectionsParentsList


-- | Mutate a raster collection asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.patch</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Patch

-- | A resource alias for <tt>mapsengine.rasterCollections.patch</tt>
--   method which the <a>RasterCollectionsPatch</a> request conforms to.
type RasterCollectionsPatchResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RasterCollection :> Patch '[JSON] ())))))

-- | Creates a value of <a>RasterCollectionsPatch</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>rasPayload</a></li>
--   <li><a>rasId</a></li>
--   </ul>
rasterCollectionsPatch :: RasterCollection -> Text -> RasterCollectionsPatch

-- | Mutate a raster collection asset.
--   
--   <i>See:</i> <a>rasterCollectionsPatch</a> smart constructor.
data RasterCollectionsPatch

-- | Multipart request metadata.
rasPayload :: Lens' RasterCollectionsPatch RasterCollection

-- | The ID of the raster collection.
rasId :: Lens' RasterCollectionsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Patch.RasterCollectionsPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Patch.RasterCollectionsPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Patch.RasterCollectionsPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Patch.RasterCollectionsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Patch.RasterCollectionsPatch


-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.permissions.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.permissions.batchDelete</tt> method
--   which the <a>RasterCollectionsPermissionsBatchDelete</a> request
--   conforms to.
type RasterCollectionsPermissionsBatchDeleteResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("permissions" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchDeleteRequest :> Post '[JSON] PermissionsBatchDeleteResponse)))))))

-- | Creates a value of <a>RasterCollectionsPermissionsBatchDelete</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>rcpbdPayload</a></li>
--   <li><a>rcpbdId</a></li>
--   </ul>
rasterCollectionsPermissionsBatchDelete :: PermissionsBatchDeleteRequest -> Text -> RasterCollectionsPermissionsBatchDelete

-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>rasterCollectionsPermissionsBatchDelete</a> smart
--   constructor.
data RasterCollectionsPermissionsBatchDelete

-- | Multipart request metadata.
rcpbdPayload :: Lens' RasterCollectionsPermissionsBatchDelete PermissionsBatchDeleteRequest

-- | The ID of the asset from which permissions will be removed.
rcpbdId :: Lens' RasterCollectionsPermissionsBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete.RasterCollectionsPermissionsBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete.RasterCollectionsPermissionsBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete.RasterCollectionsPermissionsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete.RasterCollectionsPermissionsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchDelete.RasterCollectionsPermissionsBatchDelete


-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.permissions.batchUpdate</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.permissions.batchUpdate</tt> method
--   which the <a>RasterCollectionsPermissionsBatchUpdate</a> request
--   conforms to.
type RasterCollectionsPermissionsBatchUpdateResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("permissions" :> ("batchUpdate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchUpdateRequest :> Post '[JSON] PermissionsBatchUpdateResponse)))))))

-- | Creates a value of <a>RasterCollectionsPermissionsBatchUpdate</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>rcpbuPayload</a></li>
--   <li><a>rcpbuId</a></li>
--   </ul>
rasterCollectionsPermissionsBatchUpdate :: PermissionsBatchUpdateRequest -> Text -> RasterCollectionsPermissionsBatchUpdate

-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>rasterCollectionsPermissionsBatchUpdate</a> smart
--   constructor.
data RasterCollectionsPermissionsBatchUpdate

-- | Multipart request metadata.
rcpbuPayload :: Lens' RasterCollectionsPermissionsBatchUpdate PermissionsBatchUpdateRequest

-- | The ID of the asset to which permissions will be added.
rcpbuId :: Lens' RasterCollectionsPermissionsBatchUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate.RasterCollectionsPermissionsBatchUpdate
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate.RasterCollectionsPermissionsBatchUpdate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate.RasterCollectionsPermissionsBatchUpdate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate.RasterCollectionsPermissionsBatchUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Permissions.BatchUpdate.RasterCollectionsPermissionsBatchUpdate


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.permissions.list</tt> method which
--   the <a>RasterCollectionsPermissionsList</a> request conforms to.
type RasterCollectionsPermissionsListResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>RasterCollectionsPermissionsList</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>rcplId</a></li>
--   </ul>
rasterCollectionsPermissionsList :: Text -> RasterCollectionsPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>rasterCollectionsPermissionsList</a> smart constructor.
data RasterCollectionsPermissionsList

-- | The ID of the asset whose permissions will be listed.
rcplId :: Lens' RasterCollectionsPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List.RasterCollectionsPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List.RasterCollectionsPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List.RasterCollectionsPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List.RasterCollectionsPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Permissions.List.RasterCollectionsPermissionsList


-- | Process a raster collection asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.process</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Process

-- | A resource alias for <tt>mapsengine.rasterCollections.process</tt>
--   method which the <a>RasterCollectionsProcess</a> request conforms to.
type RasterCollectionsProcessResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("process" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>RasterCollectionsProcess</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>rcpId</a></li>
--   </ul>
rasterCollectionsProcess :: Text -> RasterCollectionsProcess

-- | Process a raster collection asset.
--   
--   <i>See:</i> <a>rasterCollectionsProcess</a> smart constructor.
data RasterCollectionsProcess

-- | The ID of the raster collection.
rcpId :: Lens' RasterCollectionsProcess Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Process.RasterCollectionsProcess
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Process.RasterCollectionsProcess
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Process.RasterCollectionsProcess
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Process.RasterCollectionsProcess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Process.RasterCollectionsProcess


-- | Remove rasters from an existing raster collection. Up to 50 rasters
--   can be included in a single batchDelete request. Each batchDelete
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.rasters.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.rasters.batchDelete</tt> method which
--   the <a>RasterCollectionsRastersBatchDelete</a> request conforms to.
type RasterCollectionsRastersBatchDeleteResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("rasters" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RasterCollectionsRasterBatchDeleteRequest :> Post '[JSON] RasterCollectionsRastersBatchDeleteResponse)))))))

-- | Creates a value of <a>RasterCollectionsRastersBatchDelete</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>rcrbdPayload</a></li>
--   <li><a>rcrbdId</a></li>
--   </ul>
rasterCollectionsRastersBatchDelete :: RasterCollectionsRasterBatchDeleteRequest -> Text -> RasterCollectionsRastersBatchDelete

-- | Remove rasters from an existing raster collection. Up to 50 rasters
--   can be included in a single batchDelete request. Each batchDelete
--   request is atomic.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchDelete</a> smart
--   constructor.
data RasterCollectionsRastersBatchDelete

-- | Multipart request metadata.
rcrbdPayload :: Lens' RasterCollectionsRastersBatchDelete RasterCollectionsRasterBatchDeleteRequest

-- | The ID of the raster collection to which these rasters belong.
rcrbdId :: Lens' RasterCollectionsRastersBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete.RasterCollectionsRastersBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete.RasterCollectionsRastersBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete.RasterCollectionsRastersBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete.RasterCollectionsRastersBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchDelete.RasterCollectionsRastersBatchDelete


-- | Add rasters to an existing raster collection. Rasters must be
--   successfully processed in order to be added to a raster collection. Up
--   to 50 rasters can be included in a single batchInsert request. Each
--   batchInsert request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.rasters.batchInsert</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.rasters.batchInsert</tt> method which
--   the <a>RasterCollectionsRastersBatchInsert</a> request conforms to.
type RasterCollectionsRastersBatchInsertResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("rasters" :> ("batchInsert" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RasterCollectionsRastersBatchInsertRequest :> Post '[JSON] RasterCollectionsRastersBatchInsertResponse)))))))

-- | Creates a value of <a>RasterCollectionsRastersBatchInsert</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>rcrbiPayload</a></li>
--   <li><a>rcrbiId</a></li>
--   </ul>
rasterCollectionsRastersBatchInsert :: RasterCollectionsRastersBatchInsertRequest -> Text -> RasterCollectionsRastersBatchInsert

-- | Add rasters to an existing raster collection. Rasters must be
--   successfully processed in order to be added to a raster collection. Up
--   to 50 rasters can be included in a single batchInsert request. Each
--   batchInsert request is atomic.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchInsert</a> smart
--   constructor.
data RasterCollectionsRastersBatchInsert

-- | Multipart request metadata.
rcrbiPayload :: Lens' RasterCollectionsRastersBatchInsert RasterCollectionsRastersBatchInsertRequest

-- | The ID of the raster collection to which these rasters belong.
rcrbiId :: Lens' RasterCollectionsRastersBatchInsert Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert.RasterCollectionsRastersBatchInsert
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert.RasterCollectionsRastersBatchInsert
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert.RasterCollectionsRastersBatchInsert
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert.RasterCollectionsRastersBatchInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Rasters.BatchInsert.RasterCollectionsRastersBatchInsert


-- | Return all rasters within a raster collection.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasterCollections.rasters.list</tt>.
module Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List

-- | A resource alias for
--   <tt>mapsengine.rasterCollections.rasters.list</tt> method which the
--   <a>RasterCollectionsRastersList</a> request conforms to.
type RasterCollectionsRastersListResource = "mapsengine" :> ("v1" :> ("rasterCollections" :> (Capture "id" Text :> ("rasters" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" RasterCollectionsRastersListRole :> (QueryParam "bbox" Text :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] RasterCollectionsRastersListResponse))))))))))))))))

-- | Creates a value of <a>RasterCollectionsRastersList</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>rcrlCreatedAfter</a></li>
--   <li><a>rcrlCreatorEmail</a></li>
--   <li><a>rcrlRole</a></li>
--   <li><a>rcrlBbox</a></li>
--   <li><a>rcrlId</a></li>
--   <li><a>rcrlModifiedAfter</a></li>
--   <li><a>rcrlModifiedBefore</a></li>
--   <li><a>rcrlPageToken</a></li>
--   <li><a>rcrlSearch</a></li>
--   <li><a>rcrlMaxResults</a></li>
--   <li><a>rcrlTags</a></li>
--   <li><a>rcrlCreatedBefore</a></li>
--   </ul>
rasterCollectionsRastersList :: Text -> RasterCollectionsRastersList

-- | Return all rasters within a raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsRastersList</a> smart constructor.
data RasterCollectionsRastersList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
rcrlCreatedAfter :: Lens' RasterCollectionsRastersList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
rcrlCreatorEmail :: Lens' RasterCollectionsRastersList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
rcrlRole :: Lens' RasterCollectionsRastersList (Maybe RasterCollectionsRastersListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
rcrlBbox :: Lens' RasterCollectionsRastersList (Maybe Text)

-- | The ID of the raster collection to which these rasters belong.
rcrlId :: Lens' RasterCollectionsRastersList Text

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
rcrlModifiedAfter :: Lens' RasterCollectionsRastersList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
rcrlModifiedBefore :: Lens' RasterCollectionsRastersList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
rcrlPageToken :: Lens' RasterCollectionsRastersList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
rcrlSearch :: Lens' RasterCollectionsRastersList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
rcrlMaxResults :: Lens' RasterCollectionsRastersList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
rcrlTags :: Lens' RasterCollectionsRastersList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
rcrlCreatedBefore :: Lens' RasterCollectionsRastersList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List.RasterCollectionsRastersList
instance Data.Data.Data Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List.RasterCollectionsRastersList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List.RasterCollectionsRastersList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List.RasterCollectionsRastersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.RasterCollections.Rasters.List.RasterCollectionsRastersList


-- | Delete a raster.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.delete</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Delete

-- | A resource alias for <tt>mapsengine.rasters.delete</tt> method which
--   the <a>RastersDelete</a> request conforms to.
type RastersDeleteResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>RastersDelete</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>rdId</a></li>
--   </ul>
rastersDelete :: Text -> RastersDelete

-- | Delete a raster.
--   
--   <i>See:</i> <a>rastersDelete</a> smart constructor.
data RastersDelete

-- | The ID of the raster. Only the raster creator or project owner are
--   permitted to delete. If the raster is included in a layer or mosaic,
--   the request will fail. Remove it from all parents prior to deleting.
rdId :: Lens' RastersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Delete.RastersDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Delete.RastersDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Delete.RastersDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Delete.RastersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Delete.RastersDelete


-- | Upload a file to a raster asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.files.insert</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Files.Insert

-- | A resource alias for <tt>mapsengine.rasters.files.insert</tt> method
--   which the <a>RastersFilesInsert</a> request conforms to.
type RastersFilesInsertResource = ("mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("files" :> (QueryParam "filename" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ()))))))) :<|> ("upload" :> ("mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("files" :> (QueryParam "filename" Text :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] ()))))))))))

-- | Creates a value of <a>RastersFilesInsert</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>rfiId</a></li>
--   <li><a>rfiFilename</a></li>
--   </ul>
rastersFilesInsert :: Text -> Text -> RastersFilesInsert

-- | Upload a file to a raster asset.
--   
--   <i>See:</i> <a>rastersFilesInsert</a> smart constructor.
data RastersFilesInsert

-- | The ID of the raster asset.
rfiId :: Lens' RastersFilesInsert Text

-- | The file name of this uploaded file.
rfiFilename :: Lens' RastersFilesInsert Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.MapsEngine.Rasters.Files.Insert.RastersFilesInsert)


-- | Return metadata for a single raster.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.get</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Get

-- | A resource alias for <tt>mapsengine.rasters.get</tt> method which the
--   <a>RastersGet</a> request conforms to.
type RastersGetResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Raster))))

-- | Creates a value of <a>RastersGet</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>rgId</a></li>
--   </ul>
rastersGet :: Text -> RastersGet

-- | Return metadata for a single raster.
--   
--   <i>See:</i> <a>rastersGet</a> smart constructor.
data RastersGet

-- | The ID of the raster.
rgId :: Lens' RastersGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Get.RastersGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Get.RastersGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Get.RastersGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Get.RastersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Get.RastersGet


-- | Return all rasters readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.list</tt>.
module Network.Google.Resource.MapsEngine.Rasters.List

-- | A resource alias for <tt>mapsengine.rasters.list</tt> method which the
--   <a>RastersList</a> request conforms to.
type RastersListResource = "mapsengine" :> ("v1" :> ("rasters" :> (QueryParam "projectId" Text :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" RastersListRole :> (QueryParam "bbox" Text :> (QueryParam "processingStatus" RastersListProcessingStatus :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] RastersListResponse))))))))))))))))

-- | Creates a value of <a>RastersList</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>rlCreatedAfter</a></li>
--   <li><a>rlCreatorEmail</a></li>
--   <li><a>rlRole</a></li>
--   <li><a>rlBbox</a></li>
--   <li><a>rlProcessingStatus</a></li>
--   <li><a>rlModifiedAfter</a></li>
--   <li><a>rlModifiedBefore</a></li>
--   <li><a>rlPageToken</a></li>
--   <li><a>rlProjectId</a></li>
--   <li><a>rlSearch</a></li>
--   <li><a>rlMaxResults</a></li>
--   <li><a>rlTags</a></li>
--   <li><a>rlCreatedBefore</a></li>
--   </ul>
rastersList :: Text -> RastersList

-- | Return all rasters readable by the current user.
--   
--   <i>See:</i> <a>rastersList</a> smart constructor.
data RastersList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
rlCreatedAfter :: Lens' RastersList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
rlCreatorEmail :: Lens' RastersList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
rlRole :: Lens' RastersList (Maybe RastersListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
rlBbox :: Lens' RastersList (Maybe Text)
rlProcessingStatus :: Lens' RastersList (Maybe RastersListProcessingStatus)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
rlModifiedAfter :: Lens' RastersList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
rlModifiedBefore :: Lens' RastersList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
rlPageToken :: Lens' RastersList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
rlProjectId :: Lens' RastersList Text

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
rlSearch :: Lens' RastersList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
rlMaxResults :: Lens' RastersList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
rlTags :: Lens' RastersList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
rlCreatedBefore :: Lens' RastersList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.List.RastersList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.List.RastersList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.List.RastersList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.List.RastersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.List.RastersList


-- | Return all parent ids of the specified rasters.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.parents.list</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Parents.List

-- | A resource alias for <tt>mapsengine.rasters.parents.list</tt> method
--   which the <a>RastersParentsList</a> request conforms to.
type RastersParentsListResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("parents" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ParentsListResponse)))))))

-- | Creates a value of <a>RastersParentsList</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>rId</a></li>
--   <li><a>rPageToken</a></li>
--   <li><a>rMaxResults</a></li>
--   </ul>
rastersParentsList :: Text -> RastersParentsList

-- | Return all parent ids of the specified rasters.
--   
--   <i>See:</i> <a>rastersParentsList</a> smart constructor.
data RastersParentsList

-- | The ID of the rasters whose parents will be listed.
rId :: Lens' RastersParentsList Text

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
rPageToken :: Lens' RastersParentsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
rMaxResults :: Lens' RastersParentsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Parents.List.RastersParentsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Parents.List.RastersParentsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Parents.List.RastersParentsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Parents.List.RastersParentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Parents.List.RastersParentsList


-- | Mutate a raster asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.patch</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Patch

-- | A resource alias for <tt>mapsengine.rasters.patch</tt> method which
--   the <a>RastersPatch</a> request conforms to.
type RastersPatchResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Raster :> Patch '[JSON] ())))))

-- | Creates a value of <a>RastersPatch</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>rppPayload</a></li>
--   <li><a>rppId</a></li>
--   </ul>
rastersPatch :: Raster -> Text -> RastersPatch

-- | Mutate a raster asset.
--   
--   <i>See:</i> <a>rastersPatch</a> smart constructor.
data RastersPatch

-- | Multipart request metadata.
rppPayload :: Lens' RastersPatch Raster

-- | The ID of the raster.
rppId :: Lens' RastersPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Patch.RastersPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Patch.RastersPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Patch.RastersPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Patch.RastersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Patch.RastersPatch


-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.permissions.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete

-- | A resource alias for
--   <tt>mapsengine.rasters.permissions.batchDelete</tt> method which the
--   <a>RastersPermissionsBatchDelete</a> request conforms to.
type RastersPermissionsBatchDeleteResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("permissions" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchDeleteRequest :> Post '[JSON] PermissionsBatchDeleteResponse)))))))

-- | Creates a value of <a>RastersPermissionsBatchDelete</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>rpbdPayload</a></li>
--   <li><a>rpbdId</a></li>
--   </ul>
rastersPermissionsBatchDelete :: PermissionsBatchDeleteRequest -> Text -> RastersPermissionsBatchDelete

-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>rastersPermissionsBatchDelete</a> smart constructor.
data RastersPermissionsBatchDelete

-- | Multipart request metadata.
rpbdPayload :: Lens' RastersPermissionsBatchDelete PermissionsBatchDeleteRequest

-- | The ID of the asset from which permissions will be removed.
rpbdId :: Lens' RastersPermissionsBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete.RastersPermissionsBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete.RastersPermissionsBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete.RastersPermissionsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete.RastersPermissionsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchDelete.RastersPermissionsBatchDelete


-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.permissions.batchUpdate</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate

-- | A resource alias for
--   <tt>mapsengine.rasters.permissions.batchUpdate</tt> method which the
--   <a>RastersPermissionsBatchUpdate</a> request conforms to.
type RastersPermissionsBatchUpdateResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("permissions" :> ("batchUpdate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchUpdateRequest :> Post '[JSON] PermissionsBatchUpdateResponse)))))))

-- | Creates a value of <a>RastersPermissionsBatchUpdate</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>rpbuPayload</a></li>
--   <li><a>rpbuId</a></li>
--   </ul>
rastersPermissionsBatchUpdate :: PermissionsBatchUpdateRequest -> Text -> RastersPermissionsBatchUpdate

-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>rastersPermissionsBatchUpdate</a> smart constructor.
data RastersPermissionsBatchUpdate

-- | Multipart request metadata.
rpbuPayload :: Lens' RastersPermissionsBatchUpdate PermissionsBatchUpdateRequest

-- | The ID of the asset to which permissions will be added.
rpbuId :: Lens' RastersPermissionsBatchUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate.RastersPermissionsBatchUpdate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate.RastersPermissionsBatchUpdate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate.RastersPermissionsBatchUpdate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate.RastersPermissionsBatchUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Permissions.BatchUpdate.RastersPermissionsBatchUpdate


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Permissions.List

-- | A resource alias for <tt>mapsengine.rasters.permissions.list</tt>
--   method which the <a>RastersPermissionsList</a> request conforms to.
type RastersPermissionsListResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>RastersPermissionsList</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>rplId</a></li>
--   </ul>
rastersPermissionsList :: Text -> RastersPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>rastersPermissionsList</a> smart constructor.
data RastersPermissionsList

-- | The ID of the asset whose permissions will be listed.
rplId :: Lens' RastersPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Permissions.List.RastersPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Permissions.List.RastersPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Permissions.List.RastersPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Permissions.List.RastersPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Permissions.List.RastersPermissionsList


-- | Process a raster asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.process</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Process

-- | A resource alias for <tt>mapsengine.rasters.process</tt> method which
--   the <a>RastersProcess</a> request conforms to.
type RastersProcessResource = "mapsengine" :> ("v1" :> ("rasters" :> (Capture "id" Text :> ("process" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>RastersProcess</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>rpId</a></li>
--   </ul>
rastersProcess :: Text -> RastersProcess

-- | Process a raster asset.
--   
--   <i>See:</i> <a>rastersProcess</a> smart constructor.
data RastersProcess

-- | The ID of the raster.
rpId :: Lens' RastersProcess Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Process.RastersProcess
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Process.RastersProcess
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Process.RastersProcess
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Process.RastersProcess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Process.RastersProcess


-- | Create a skeleton raster asset for upload.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.rasters.upload</tt>.
module Network.Google.Resource.MapsEngine.Rasters.Upload

-- | A resource alias for <tt>mapsengine.rasters.upload</tt> method which
--   the <a>RastersUpload</a> request conforms to.
type RastersUploadResource = "mapsengine" :> ("v1" :> ("rasters" :> ("upload" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Raster :> Post '[JSON] Raster)))))

-- | Creates a value of <a>RastersUpload</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>ruPayload</a></li>
--   </ul>
rastersUpload :: Raster -> RastersUpload

-- | Create a skeleton raster asset for upload.
--   
--   <i>See:</i> <a>rastersUpload</a> smart constructor.
data RastersUpload

-- | Multipart request metadata.
ruPayload :: Lens' RastersUpload Raster
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Rasters.Upload.RastersUpload
instance Data.Data.Data Network.Google.Resource.MapsEngine.Rasters.Upload.RastersUpload
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Rasters.Upload.RastersUpload
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Rasters.Upload.RastersUpload
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Rasters.Upload.RastersUpload


-- | Create a table asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.create</tt>.
module Network.Google.Resource.MapsEngine.Tables.Create

-- | A resource alias for <tt>mapsengine.tables.create</tt> method which
--   the <a>TablesCreate</a> request conforms to.
type TablesCreateResource = "mapsengine" :> ("v1" :> ("tables" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Post '[JSON] Table))))

-- | Creates a value of <a>TablesCreate</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>tcPayload</a></li>
--   </ul>
tablesCreate :: Table -> TablesCreate

-- | Create a table asset.
--   
--   <i>See:</i> <a>tablesCreate</a> smart constructor.
data TablesCreate

-- | Multipart request metadata.
tcPayload :: Lens' TablesCreate Table
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Create.TablesCreate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Create.TablesCreate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Create.TablesCreate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Create.TablesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Create.TablesCreate


-- | Delete a table.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.delete</tt>.
module Network.Google.Resource.MapsEngine.Tables.Delete

-- | A resource alias for <tt>mapsengine.tables.delete</tt> method which
--   the <a>TablesDelete</a> request conforms to.
type TablesDeleteResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>TablesDelete</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>tdId</a></li>
--   </ul>
tablesDelete :: Text -> TablesDelete

-- | Delete a table.
--   
--   <i>See:</i> <a>tablesDelete</a> smart constructor.
data TablesDelete

-- | The ID of the table. Only the table creator or project owner are
--   permitted to delete. If the table is included in a layer, the request
--   will fail. Remove it from all layers prior to deleting.
tdId :: Lens' TablesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Delete.TablesDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Delete.TablesDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Delete.TablesDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Delete.TablesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Delete.TablesDelete


-- | Delete all features matching the given IDs.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.features.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete

-- | A resource alias for <tt>mapsengine.tables.features.batchDelete</tt>
--   method which the <a>TablesFeaturesBatchDelete</a> request conforms to.
type TablesFeaturesBatchDeleteResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("features" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] FeaturesBatchDeleteRequest :> Post '[JSON] ())))))))

-- | Creates a value of <a>TablesFeaturesBatchDelete</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>tfbdPayload</a></li>
--   <li><a>tfbdId</a></li>
--   </ul>
tablesFeaturesBatchDelete :: FeaturesBatchDeleteRequest -> Text -> TablesFeaturesBatchDelete

-- | Delete all features matching the given IDs.
--   
--   <i>See:</i> <a>tablesFeaturesBatchDelete</a> smart constructor.
data TablesFeaturesBatchDelete

-- | Multipart request metadata.
tfbdPayload :: Lens' TablesFeaturesBatchDelete FeaturesBatchDeleteRequest

-- | The ID of the table that contains the features to be deleted.
tfbdId :: Lens' TablesFeaturesBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete.TablesFeaturesBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete.TablesFeaturesBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete.TablesFeaturesBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete.TablesFeaturesBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Features.BatchDelete.TablesFeaturesBatchDelete


-- | Append features to an existing table. A single batchInsert request can
--   create: - Up to 50 features. - A combined total of 10 000 vertices.
--   Feature limits are documented in the Supported data formats and limits
--   article of the Google Maps Engine help center. Note that free and paid
--   accounts have different limits. For more information about inserting
--   features, read Creating features in the Google Maps Engine developer's
--   guide.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.features.batchInsert</tt>.
module Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert

-- | A resource alias for <tt>mapsengine.tables.features.batchInsert</tt>
--   method which the <a>TablesFeaturesBatchInsert</a> request conforms to.
type TablesFeaturesBatchInsertResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("features" :> ("batchInsert" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] FeaturesBatchInsertRequest :> Post '[JSON] ())))))))

-- | Creates a value of <a>TablesFeaturesBatchInsert</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>tfbiPayload</a></li>
--   <li><a>tfbiId</a></li>
--   </ul>
tablesFeaturesBatchInsert :: FeaturesBatchInsertRequest -> Text -> TablesFeaturesBatchInsert

-- | Append features to an existing table. A single batchInsert request can
--   create: - Up to 50 features. - A combined total of 10 000 vertices.
--   Feature limits are documented in the Supported data formats and limits
--   article of the Google Maps Engine help center. Note that free and paid
--   accounts have different limits. For more information about inserting
--   features, read Creating features in the Google Maps Engine developer's
--   guide.
--   
--   <i>See:</i> <a>tablesFeaturesBatchInsert</a> smart constructor.
data TablesFeaturesBatchInsert

-- | Multipart request metadata.
tfbiPayload :: Lens' TablesFeaturesBatchInsert FeaturesBatchInsertRequest

-- | The ID of the table to append the features to.
tfbiId :: Lens' TablesFeaturesBatchInsert Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert.TablesFeaturesBatchInsert
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert.TablesFeaturesBatchInsert
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert.TablesFeaturesBatchInsert
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert.TablesFeaturesBatchInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Features.BatchInsert.TablesFeaturesBatchInsert


-- | Update the supplied features. A single batchPatch request can update:
--   - Up to 50 features. - A combined total of 10 000 vertices. Feature
--   limits are documented in the Supported data formats and limits article
--   of the Google Maps Engine help center. Note that free and paid
--   accounts have different limits. Feature updates use HTTP PATCH
--   semantics: - A supplied value replaces an existing value (if any) in
--   that field. - Omitted fields remain unchanged. - Complex values in
--   geometries and properties must be replaced as atomic units. For
--   example, providing just the coordinates of a geometry is not allowed;
--   the complete geometry, including type, must be supplied. - Setting a
--   property's value to null deletes that property. For more information
--   about updating features, read Updating features in the Google Maps
--   Engine developer's guide.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.features.batchPatch</tt>.
module Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch

-- | A resource alias for <tt>mapsengine.tables.features.batchPatch</tt>
--   method which the <a>TablesFeaturesBatchPatch</a> request conforms to.
type TablesFeaturesBatchPatchResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("features" :> ("batchPatch" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] FeaturesBatchPatchRequest :> Post '[JSON] ())))))))

-- | Creates a value of <a>TablesFeaturesBatchPatch</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>tfbpPayload</a></li>
--   <li><a>tfbpId</a></li>
--   </ul>
tablesFeaturesBatchPatch :: FeaturesBatchPatchRequest -> Text -> TablesFeaturesBatchPatch

-- | Update the supplied features. A single batchPatch request can update:
--   - Up to 50 features. - A combined total of 10 000 vertices. Feature
--   limits are documented in the Supported data formats and limits article
--   of the Google Maps Engine help center. Note that free and paid
--   accounts have different limits. Feature updates use HTTP PATCH
--   semantics: - A supplied value replaces an existing value (if any) in
--   that field. - Omitted fields remain unchanged. - Complex values in
--   geometries and properties must be replaced as atomic units. For
--   example, providing just the coordinates of a geometry is not allowed;
--   the complete geometry, including type, must be supplied. - Setting a
--   property's value to null deletes that property. For more information
--   about updating features, read Updating features in the Google Maps
--   Engine developer's guide.
--   
--   <i>See:</i> <a>tablesFeaturesBatchPatch</a> smart constructor.
data TablesFeaturesBatchPatch

-- | Multipart request metadata.
tfbpPayload :: Lens' TablesFeaturesBatchPatch FeaturesBatchPatchRequest

-- | The ID of the table containing the features to be patched.
tfbpId :: Lens' TablesFeaturesBatchPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch.TablesFeaturesBatchPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch.TablesFeaturesBatchPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch.TablesFeaturesBatchPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch.TablesFeaturesBatchPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Features.BatchPatch.TablesFeaturesBatchPatch


-- | Return a single feature, given its ID.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.features.get</tt>.
module Network.Google.Resource.MapsEngine.Tables.Features.Get

-- | A resource alias for <tt>mapsengine.tables.features.get</tt> method
--   which the <a>TablesFeaturesGet</a> request conforms to.
type TablesFeaturesGetResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "tableId" Text :> ("features" :> (Capture "id" Text :> (QueryParam "version" TablesFeaturesGetVersion :> (QueryParam "select" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Feature))))))))

-- | Creates a value of <a>TablesFeaturesGet</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>tfgVersion</a></li>
--   <li><a>tfgId</a></li>
--   <li><a>tfgSelect</a></li>
--   <li><a>tfgTableId</a></li>
--   </ul>
tablesFeaturesGet :: Text -> Text -> TablesFeaturesGet

-- | Return a single feature, given its ID.
--   
--   <i>See:</i> <a>tablesFeaturesGet</a> smart constructor.
data TablesFeaturesGet

-- | The table version to access. See Accessing Public Data for
--   information.
tfgVersion :: Lens' TablesFeaturesGet (Maybe TablesFeaturesGetVersion)

-- | The ID of the feature to get.
tfgId :: Lens' TablesFeaturesGet Text

-- | A SQL-like projection clause used to specify returned properties. If
--   this parameter is not included, all properties are returned.
tfgSelect :: Lens' TablesFeaturesGet (Maybe Text)

-- | The ID of the table.
tfgTableId :: Lens' TablesFeaturesGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Features.Get.TablesFeaturesGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Features.Get.TablesFeaturesGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Features.Get.TablesFeaturesGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Features.Get.TablesFeaturesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Features.Get.TablesFeaturesGet


-- | Return all features readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.features.list</tt>.
module Network.Google.Resource.MapsEngine.Tables.Features.List

-- | A resource alias for <tt>mapsengine.tables.features.list</tt> method
--   which the <a>TablesFeaturesList</a> request conforms to.
type TablesFeaturesListResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("features" :> (QueryParam "include" Text :> (QueryParam "where" Text :> (QueryParam "orderBy" Text :> (QueryParam "version" TablesFeaturesListVersion :> (QueryParam "limit" (Textual Word32) :> (QueryParam "pageToken" Text :> (QueryParam "select" Text :> (QueryParam "intersects" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] FeaturesListResponse))))))))))))))

-- | Creates a value of <a>TablesFeaturesList</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>tflInclude</a></li>
--   <li><a>tflWhere</a></li>
--   <li><a>tflOrderBy</a></li>
--   <li><a>tflVersion</a></li>
--   <li><a>tflId</a></li>
--   <li><a>tflLimit</a></li>
--   <li><a>tflPageToken</a></li>
--   <li><a>tflSelect</a></li>
--   <li><a>tflIntersects</a></li>
--   <li><a>tflMaxResults</a></li>
--   </ul>
tablesFeaturesList :: Text -> TablesFeaturesList

-- | Return all features readable by the current user.
--   
--   <i>See:</i> <a>tablesFeaturesList</a> smart constructor.
data TablesFeaturesList

-- | A comma separated list of optional data to include. Optional data
--   available: schema.
tflInclude :: Lens' TablesFeaturesList (Maybe Text)

-- | An SQL-like predicate used to filter results.
tflWhere :: Lens' TablesFeaturesList (Maybe Text)

-- | An SQL-like order by clause used to sort results. If this parameter is
--   not included, the order of features is undefined.
tflOrderBy :: Lens' TablesFeaturesList (Maybe Text)

-- | The table version to access. See Accessing Public Data for
--   information.
tflVersion :: Lens' TablesFeaturesList (Maybe TablesFeaturesListVersion)

-- | The ID of the table to which these features belong.
tflId :: Lens' TablesFeaturesList Text

-- | The total number of features to return from the query, irrespective of
--   the number of pages.
tflLimit :: Lens' TablesFeaturesList (Maybe Word32)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
tflPageToken :: Lens' TablesFeaturesList (Maybe Text)

-- | A SQL-like projection clause used to specify returned properties. If
--   this parameter is not included, all properties are returned.
tflSelect :: Lens' TablesFeaturesList (Maybe Text)

-- | A geometry literal that specifies the spatial restriction of the
--   query.
tflIntersects :: Lens' TablesFeaturesList (Maybe Text)

-- | The maximum number of items to include in the response, used for
--   paging. The maximum supported value is 1000.
tflMaxResults :: Lens' TablesFeaturesList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Features.List.TablesFeaturesList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Features.List.TablesFeaturesList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Features.List.TablesFeaturesList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Features.List.TablesFeaturesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Features.List.TablesFeaturesList


-- | Upload a file to a placeholder table asset. See Table Upload in the
--   Developer's Guide for more information. Supported file types are
--   listed in the Supported data formats and limits article of the Google
--   Maps Engine help center.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.files.insert</tt>.
module Network.Google.Resource.MapsEngine.Tables.Files.Insert

-- | A resource alias for <tt>mapsengine.tables.files.insert</tt> method
--   which the <a>TablesFilesInsert</a> request conforms to.
type TablesFilesInsertResource = ("mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("files" :> (QueryParam "filename" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ()))))))) :<|> ("upload" :> ("mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("files" :> (QueryParam "filename" Text :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] ()))))))))))

-- | Creates a value of <a>TablesFilesInsert</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>tfiId</a></li>
--   <li><a>tfiFilename</a></li>
--   </ul>
tablesFilesInsert :: Text -> Text -> TablesFilesInsert

-- | Upload a file to a placeholder table asset. See Table Upload in the
--   Developer's Guide for more information. Supported file types are
--   listed in the Supported data formats and limits article of the Google
--   Maps Engine help center.
--   
--   <i>See:</i> <a>tablesFilesInsert</a> smart constructor.
data TablesFilesInsert

-- | The ID of the table asset.
tfiId :: Lens' TablesFilesInsert Text

-- | The file name of this uploaded file.
tfiFilename :: Lens' TablesFilesInsert Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.MapsEngine.Tables.Files.Insert.TablesFilesInsert)


-- | Return metadata for a particular table, including the schema.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.get</tt>.
module Network.Google.Resource.MapsEngine.Tables.Get

-- | A resource alias for <tt>mapsengine.tables.get</tt> method which the
--   <a>TablesGet</a> request conforms to.
type TablesGetResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> (QueryParam "version" TablesGetVersion :> (QueryParam "alt" AltJSON :> Get '[JSON] Table)))))

-- | Creates a value of <a>TablesGet</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>tgVersion</a></li>
--   <li><a>tgId</a></li>
--   </ul>
tablesGet :: Text -> TablesGet

-- | Return metadata for a particular table, including the schema.
--   
--   <i>See:</i> <a>tablesGet</a> smart constructor.
data TablesGet
tgVersion :: Lens' TablesGet (Maybe TablesGetVersion)

-- | The ID of the table.
tgId :: Lens' TablesGet Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Get.TablesGet
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Get.TablesGet
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Get.TablesGet
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Get.TablesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Get.TablesGet


-- | Return all tables readable by the current user.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.list</tt>.
module Network.Google.Resource.MapsEngine.Tables.List

-- | A resource alias for <tt>mapsengine.tables.list</tt> method which the
--   <a>TablesList</a> request conforms to.
type TablesListResource = "mapsengine" :> ("v1" :> ("tables" :> (QueryParam "createdAfter" DateTime' :> (QueryParam "creatorEmail" Text :> (QueryParam "role" TablesListRole :> (QueryParam "bbox" Text :> (QueryParam "processingStatus" TablesListProcessingStatus :> (QueryParam "modifiedAfter" DateTime' :> (QueryParam "modifiedBefore" DateTime' :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "search" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "tags" Text :> (QueryParam "createdBefore" DateTime' :> (QueryParam "alt" AltJSON :> Get '[JSON] TablesListResponse))))))))))))))))

-- | Creates a value of <a>TablesList</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>tlCreatedAfter</a></li>
--   <li><a>tlCreatorEmail</a></li>
--   <li><a>tlRole</a></li>
--   <li><a>tlBbox</a></li>
--   <li><a>tlProcessingStatus</a></li>
--   <li><a>tlModifiedAfter</a></li>
--   <li><a>tlModifiedBefore</a></li>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlProjectId</a></li>
--   <li><a>tlSearch</a></li>
--   <li><a>tlMaxResults</a></li>
--   <li><a>tlTags</a></li>
--   <li><a>tlCreatedBefore</a></li>
--   </ul>
tablesList :: TablesList

-- | Return all tables readable by the current user.
--   
--   <i>See:</i> <a>tablesList</a> smart constructor.
data TablesList

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or after this time.
tlCreatedAfter :: Lens' TablesList (Maybe UTCTime)

-- | An email address representing a user. Returned assets that have been
--   created by the user associated with the provided email address.
tlCreatorEmail :: Lens' TablesList (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
tlRole :: Lens' TablesList (Maybe TablesListRole)

-- | A bounding box, expressed as "west,south,east,north". If set, only
--   assets which intersect this bounding box will be returned.
tlBbox :: Lens' TablesList (Maybe Text)
tlProcessingStatus :: Lens' TablesList (Maybe TablesListProcessingStatus)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or after this time.
tlModifiedAfter :: Lens' TablesList (Maybe UTCTime)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been modified at or before this time.
tlModifiedBefore :: Lens' TablesList (Maybe UTCTime)

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
tlPageToken :: Lens' TablesList (Maybe Text)

-- | The ID of a Maps Engine project, used to filter the response. To list
--   all available projects with their IDs, send a Projects: list request.
--   You can also find your project ID as the value of the
--   DashboardPlace:cid URL parameter when signed in to
--   mapsengine.google.com.
tlProjectId :: Lens' TablesList (Maybe Text)

-- | An unstructured search string used to filter the set of results based
--   on asset metadata.
tlSearch :: Lens' TablesList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 100.
tlMaxResults :: Lens' TablesList (Maybe Word32)

-- | A comma separated list of tags. Returned assets will contain all the
--   tags from the list.
tlTags :: Lens' TablesList (Maybe Text)

-- | An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
--   Returned assets will have been created at or before this time.
tlCreatedBefore :: Lens' TablesList (Maybe UTCTime)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.List.TablesList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.List.TablesList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.List.TablesList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.List.TablesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.List.TablesList


-- | Return all parent ids of the specified table.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.parents.list</tt>.
module Network.Google.Resource.MapsEngine.Tables.Parents.List

-- | A resource alias for <tt>mapsengine.tables.parents.list</tt> method
--   which the <a>TablesParentsList</a> request conforms to.
type TablesParentsListResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("parents" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ParentsListResponse)))))))

-- | Creates a value of <a>TablesParentsList</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>tId</a></li>
--   <li><a>tPageToken</a></li>
--   <li><a>tMaxResults</a></li>
--   </ul>
tablesParentsList :: Text -> TablesParentsList

-- | Return all parent ids of the specified table.
--   
--   <i>See:</i> <a>tablesParentsList</a> smart constructor.
data TablesParentsList

-- | The ID of the table whose parents will be listed.
tId :: Lens' TablesParentsList Text

-- | The continuation token, used to page through large result sets. To get
--   the next page of results, set this parameter to the value of
--   nextPageToken from the previous response.
tPageToken :: Lens' TablesParentsList (Maybe Text)

-- | The maximum number of items to include in a single response page. The
--   maximum supported value is 50.
tMaxResults :: Lens' TablesParentsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Parents.List.TablesParentsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Parents.List.TablesParentsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Parents.List.TablesParentsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Parents.List.TablesParentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Parents.List.TablesParentsList


-- | Mutate a table asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.patch</tt>.
module Network.Google.Resource.MapsEngine.Tables.Patch

-- | A resource alias for <tt>mapsengine.tables.patch</tt> method which the
--   <a>TablesPatch</a> request conforms to.
type TablesPatchResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Patch '[JSON] ())))))

-- | Creates a value of <a>TablesPatch</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>tpId</a></li>
--   </ul>
tablesPatch :: Table -> Text -> TablesPatch

-- | Mutate a table asset.
--   
--   <i>See:</i> <a>tablesPatch</a> smart constructor.
data TablesPatch

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

-- | The ID of the table.
tpId :: Lens' TablesPatch Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Patch.TablesPatch
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Patch.TablesPatch
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Patch.TablesPatch
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Patch.TablesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Patch.TablesPatch


-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.permissions.batchDelete</tt>.
module Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete

-- | A resource alias for
--   <tt>mapsengine.tables.permissions.batchDelete</tt> method which the
--   <a>TablesPermissionsBatchDelete</a> request conforms to.
type TablesPermissionsBatchDeleteResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("permissions" :> ("batchDelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchDeleteRequest :> Post '[JSON] PermissionsBatchDeleteResponse)))))))

-- | Creates a value of <a>TablesPermissionsBatchDelete</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>tpbdPayload</a></li>
--   <li><a>tpbdId</a></li>
--   </ul>
tablesPermissionsBatchDelete :: PermissionsBatchDeleteRequest -> Text -> TablesPermissionsBatchDelete

-- | Remove permission entries from an already existing asset.
--   
--   <i>See:</i> <a>tablesPermissionsBatchDelete</a> smart constructor.
data TablesPermissionsBatchDelete

-- | Multipart request metadata.
tpbdPayload :: Lens' TablesPermissionsBatchDelete PermissionsBatchDeleteRequest

-- | The ID of the asset from which permissions will be removed.
tpbdId :: Lens' TablesPermissionsBatchDelete Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete.TablesPermissionsBatchDelete
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete.TablesPermissionsBatchDelete
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete.TablesPermissionsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete.TablesPermissionsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Permissions.BatchDelete.TablesPermissionsBatchDelete


-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.permissions.batchUpdate</tt>.
module Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate

-- | A resource alias for
--   <tt>mapsengine.tables.permissions.batchUpdate</tt> method which the
--   <a>TablesPermissionsBatchUpdate</a> request conforms to.
type TablesPermissionsBatchUpdateResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("permissions" :> ("batchUpdate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PermissionsBatchUpdateRequest :> Post '[JSON] PermissionsBatchUpdateResponse)))))))

-- | Creates a value of <a>TablesPermissionsBatchUpdate</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>tpbuPayload</a></li>
--   <li><a>tpbuId</a></li>
--   </ul>
tablesPermissionsBatchUpdate :: PermissionsBatchUpdateRequest -> Text -> TablesPermissionsBatchUpdate

-- | Add or update permission entries to an already existing asset. An
--   asset can hold up to 20 different permission entries. Each batchInsert
--   request is atomic.
--   
--   <i>See:</i> <a>tablesPermissionsBatchUpdate</a> smart constructor.
data TablesPermissionsBatchUpdate

-- | Multipart request metadata.
tpbuPayload :: Lens' TablesPermissionsBatchUpdate PermissionsBatchUpdateRequest

-- | The ID of the asset to which permissions will be added.
tpbuId :: Lens' TablesPermissionsBatchUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate.TablesPermissionsBatchUpdate
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate.TablesPermissionsBatchUpdate
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate.TablesPermissionsBatchUpdate
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate.TablesPermissionsBatchUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Permissions.BatchUpdate.TablesPermissionsBatchUpdate


-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.permissions.list</tt>.
module Network.Google.Resource.MapsEngine.Tables.Permissions.List

-- | A resource alias for <tt>mapsengine.tables.permissions.list</tt>
--   method which the <a>TablesPermissionsList</a> request conforms to.
type TablesPermissionsListResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionsListResponse)))))

-- | Creates a value of <a>TablesPermissionsList</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>tplId</a></li>
--   </ul>
tablesPermissionsList :: Text -> TablesPermissionsList

-- | Return all of the permissions for the specified asset.
--   
--   <i>See:</i> <a>tablesPermissionsList</a> smart constructor.
data TablesPermissionsList

-- | The ID of the asset whose permissions will be listed.
tplId :: Lens' TablesPermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Permissions.List.TablesPermissionsList
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Permissions.List.TablesPermissionsList
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Permissions.List.TablesPermissionsList
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Permissions.List.TablesPermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Permissions.List.TablesPermissionsList


-- | Process a table asset.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.process</tt>.
module Network.Google.Resource.MapsEngine.Tables.Process

-- | A resource alias for <tt>mapsengine.tables.process</tt> method which
--   the <a>TablesProcess</a> request conforms to.
type TablesProcessResource = "mapsengine" :> ("v1" :> ("tables" :> (Capture "id" Text :> ("process" :> (QueryParam "alt" AltJSON :> Post '[JSON] ProcessResponse)))))

-- | Creates a value of <a>TablesProcess</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>tpsId</a></li>
--   </ul>
tablesProcess :: Text -> TablesProcess

-- | Process a table asset.
--   
--   <i>See:</i> <a>tablesProcess</a> smart constructor.
data TablesProcess

-- | The ID of the table.
tpsId :: Lens' TablesProcess Text
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Process.TablesProcess
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Process.TablesProcess
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Process.TablesProcess
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Process.TablesProcess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Process.TablesProcess


-- | Create a placeholder table asset to which table files can be uploaded.
--   Once the placeholder has been created, files are uploaded to the
--   https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files
--   endpoint. See Table Upload in the Developer's Guide or Table.files:
--   insert in the reference documentation for more information.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a> for
--   <tt>mapsengine.tables.upload</tt>.
module Network.Google.Resource.MapsEngine.Tables.Upload

-- | A resource alias for <tt>mapsengine.tables.upload</tt> method which
--   the <a>TablesUpload</a> request conforms to.
type TablesUploadResource = "mapsengine" :> ("v1" :> ("tables" :> ("upload" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Post '[JSON] Table)))))

-- | Creates a value of <a>TablesUpload</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>tuPayload</a></li>
--   </ul>
tablesUpload :: Table -> TablesUpload

-- | Create a placeholder table asset to which table files can be uploaded.
--   Once the placeholder has been created, files are uploaded to the
--   https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files
--   endpoint. See Table Upload in the Developer's Guide or Table.files:
--   insert in the reference documentation for more information.
--   
--   <i>See:</i> <a>tablesUpload</a> smart constructor.
data TablesUpload

-- | Multipart request metadata.
tuPayload :: Lens' TablesUpload Table
instance GHC.Generics.Generic Network.Google.Resource.MapsEngine.Tables.Upload.TablesUpload
instance Data.Data.Data Network.Google.Resource.MapsEngine.Tables.Upload.TablesUpload
instance GHC.Show.Show Network.Google.Resource.MapsEngine.Tables.Upload.TablesUpload
instance GHC.Classes.Eq Network.Google.Resource.MapsEngine.Tables.Upload.TablesUpload
instance Network.Google.Types.GoogleRequest Network.Google.Resource.MapsEngine.Tables.Upload.TablesUpload


-- | The Google Maps Engine API allows developers to store and query
--   geospatial vector and raster data.
--   
--   <i>See:</i> <a>Google Maps Engine API Reference</a>
module Network.Google.MapsEngine

-- | Default request referring to version <tt>v1</tt> of the Google Maps
--   Engine API. This contains the host and root path used as a starting
--   point for constructing service requests.
mapsEngineService :: ServiceConfig

-- | View and manage your Google My Maps data
mapsEngineScope :: Proxy '["https://www.googleapis.com/auth/mapsengine"]

-- | View your Google My Maps data
mapsEngineReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/mapsengine.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   Google Maps Engine API service.
type MapsEngineAPI = MapsPermissionsListResource :<|> (MapsPermissionsBatchUpdateResource :<|> (MapsPermissionsBatchDeleteResource :<|> (MapsListResource :<|> (MapsListPublishedResource :<|> (MapsPatchResource :<|> (MapsGetResource :<|> (MapsGetPublishedResource :<|> (MapsCreateResource :<|> (MapsUnPublishResource :<|> (MapsDeleteResource :<|> (MapsPublishResource :<|> (TablesParentsListResource :<|> (TablesFeaturesListResource :<|> (TablesFeaturesBatchInsertResource :<|> (TablesFeaturesGetResource :<|> (TablesFeaturesBatchPatchResource :<|> (TablesFeaturesBatchDeleteResource :<|> (TablesFilesInsertResource :<|> (TablesPermissionsListResource :<|> (TablesPermissionsBatchUpdateResource :<|> (TablesPermissionsBatchDeleteResource :<|> (TablesListResource :<|> (TablesProcessResource :<|> (TablesPatchResource :<|> (TablesGetResource :<|> (TablesCreateResource :<|> (TablesUploadResource :<|> (TablesDeleteResource :<|> (LayersParentsListResource :<|> (LayersPermissionsListResource :<|> (LayersPermissionsBatchUpdateResource :<|> (LayersPermissionsBatchDeleteResource :<|> (LayersListResource :<|> (LayersListPublishedResource :<|> (LayersProcessResource :<|> (LayersPatchResource :<|> (LayersGetResource :<|> (LayersGetPublishedResource :<|> (LayersCreateResource :<|> (LayersUnPublishResource :<|> (LayersCancelProcessingResource :<|> (LayersDeleteResource :<|> (LayersPublishResource :<|> (RastersParentsListResource :<|> (RastersFilesInsertResource :<|> (RastersPermissionsListResource :<|> (RastersPermissionsBatchUpdateResource :<|> (RastersPermissionsBatchDeleteResource :<|> (RastersListResource :<|> (RastersProcessResource :<|> (RastersPatchResource :<|> (RastersGetResource :<|> (RastersUploadResource :<|> (RastersDeleteResource :<|> (AssetsParentsListResource :<|> (AssetsPermissionsListResource :<|> (AssetsListResource :<|> (AssetsGetResource :<|> (RasterCollectionsParentsListResource :<|> (RasterCollectionsPermissionsListResource :<|> (RasterCollectionsPermissionsBatchUpdateResource :<|> (RasterCollectionsPermissionsBatchDeleteResource :<|> (RasterCollectionsRastersListResource :<|> (RasterCollectionsRastersBatchInsertResource :<|> (RasterCollectionsRastersBatchDeleteResource :<|> (RasterCollectionsListResource :<|> (RasterCollectionsProcessResource :<|> (RasterCollectionsPatchResource :<|> (RasterCollectionsGetResource :<|> (RasterCollectionsCreateResource :<|> (RasterCollectionsCancelProcessingResource :<|> (RasterCollectionsDeleteResource :<|> (ProjectsIconsListResource :<|> (ProjectsIconsGetResource :<|> (ProjectsIconsCreateResource :<|> ProjectsListResource)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

-- | Range of values used for scaling shapes. The min/max values will be
--   drawn as shapes with the min/max size.
--   
--   <i>See:</i> <a>valueRange</a> smart constructor.
data ValueRange

-- | Creates a value of <a>ValueRange</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>vrMax</a></li>
--   <li><a>vrMin</a></li>
--   </ul>
valueRange :: ValueRange

-- | Maximum value.
vrMax :: Lens' ValueRange (Maybe Double)

-- | Minimum value.
vrMin :: Lens' ValueRange (Maybe Double)

-- | The properties associated with a feature.
--   
--   <i>See:</i> <a>geoJSONProperties</a> smart constructor.
data GeoJSONProperties

-- | Creates a value of <a>GeoJSONProperties</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>gjpAddtional</a></li>
--   </ul>
geoJSONProperties :: HashMap Text JSONValue -> GeoJSONProperties

-- | An arbitrary key-value pair. The key must be the name of a column in
--   the table's schema, and the type of the value must correspond to the
--   type specified in the schema.
gjpAddtional :: Lens' GeoJSONProperties (HashMap Text JSONValue)

-- | A feature within a table.
--   
--   <i>See:</i> <a>feature</a> smart constructor.
data Feature

-- | Creates a value of <a>Feature</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>fGeometry</a></li>
--   <li><a>fType</a></li>
--   <li><a>fProperties</a></li>
--   </ul>
feature :: Feature

-- | The geometry member of this Feature.
fGeometry :: Lens' Feature (Maybe GeoJSONGeometry)

-- | Identifies this object as a feature.
fType :: Lens' Feature Text

-- | Key/value pairs of this Feature.
fProperties :: Lens' Feature (Maybe GeoJSONProperties)

-- | A list of the parents of an asset.
--   
--   <i>See:</i> <a>parent</a> smart constructor.
data Parent

-- | Creates a value of <a>Parent</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>pId</a></li>
--   </ul>
parent :: Parent

-- | The ID of this parent.
pId :: Lens' Parent (Maybe Text)

-- | The request sent to features.BatchPatch.
--   
--   <i>See:</i> <a>featuresBatchPatchRequest</a> smart constructor.
data FeaturesBatchPatchRequest

-- | Creates a value of <a>FeaturesBatchPatchRequest</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>fbprFeatures</a></li>
--   <li><a>fbprNormalizeGeometries</a></li>
--   </ul>
featuresBatchPatchRequest :: FeaturesBatchPatchRequest
fbprFeatures :: Lens' FeaturesBatchPatchRequest [Feature]

-- | If true, the server will normalize feature geometries. It is assumed
--   that the South Pole is exterior to any polygons given. See here for a
--   list of normalizations. If false, all feature geometries must be given
--   already normalized. The points in all LinearRings must be listed in
--   counter-clockwise order, and LinearRings may not intersect.
fbprNormalizeGeometries :: Lens' FeaturesBatchPatchRequest Bool

-- | The request sent to mapsengine.permissions.batchUpdate.
--   
--   <i>See:</i> <a>permissionsBatchUpdateRequest</a> smart constructor.
data PermissionsBatchUpdateRequest

-- | Creates a value of <a>PermissionsBatchUpdateRequest</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>pburPermissions</a></li>
--   </ul>
permissionsBatchUpdateRequest :: PermissionsBatchUpdateRequest

-- | The permissions to be inserted or updated.
pburPermissions :: Lens' PermissionsBatchUpdateRequest [Permission]

-- | The processing status of this Raster.
data RasterProcessingStatus

-- | <pre>
--   complete
--   </pre>
Complete :: RasterProcessingStatus

-- | <pre>
--   failed
--   </pre>
Failed :: RasterProcessingStatus

-- | <pre>
--   notReady
--   </pre>
NotReady :: RasterProcessingStatus

-- | <pre>
--   processing
--   </pre>
Processing :: RasterProcessingStatus

-- | <pre>
--   ready
--   </pre>
Ready :: RasterProcessingStatus

-- | The processing status of this layer.
data LayerProcessingStatus

-- | <pre>
--   complete
--   </pre>
LPSComplete :: LayerProcessingStatus

-- | <pre>
--   failed
--   </pre>
LPSFailed :: LayerProcessingStatus

-- | <pre>
--   notReady
--   </pre>
LPSNotReady :: LayerProcessingStatus

-- | <pre>
--   processing
--   </pre>
LPSProcessing :: LayerProcessingStatus

-- | <pre>
--   ready
--   </pre>
LPSReady :: LayerProcessingStatus

-- | Name of the shape.
data ScaledShapeShape

-- | <pre>
--   circle
--   </pre>
Circle :: ScaledShapeShape

-- | The request sent to mapsengine.permissions.batchDelete.
--   
--   <i>See:</i> <a>permissionsBatchDeleteRequest</a> smart constructor.
data PermissionsBatchDeleteRequest

-- | Creates a value of <a>PermissionsBatchDeleteRequest</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>pbdrIds</a></li>
--   </ul>
permissionsBatchDeleteRequest :: PermissionsBatchDeleteRequest

-- | An array of permission ids to be removed. This could be the email
--   address of the user or group this permission refers to, or the string
--   "anyone" for public permissions.
pbdrIds :: Lens' PermissionsBatchDeleteRequest [Text]

-- | The response returned by a call to raster_collections.List. Note: The
--   list response does not include all the fields available in a raster
--   collection. Refer to the RasterCollection resource description for
--   details of the fields that are not included. You'll need to send a get
--   request to retrieve the additional fields for each raster collection.
--   
--   <i>See:</i> <a>rasterCollectionsListResponse</a> smart constructor.
data RasterCollectionsListResponse

-- | Creates a value of <a>RasterCollectionsListResponse</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>rclrNextPageToken</a></li>
--   <li><a>rclrRasterCollections</a></li>
--   </ul>
rasterCollectionsListResponse :: RasterCollectionsListResponse

-- | Next page token.
rclrNextPageToken :: Lens' RasterCollectionsListResponse (Maybe ByteString)

-- | Resources returned.
rclrRasterCollections :: Lens' RasterCollectionsListResponse [RasterCollection]

-- | Identifies this object as a GeoJsonMultiLineString.
data GeoJSONMultiLineStringType

-- | <pre>
--   MultiLineString
--   </pre>
MultiLineString :: GeoJSONMultiLineStringType

-- | The type of access granted to this user or group.
data PermissionRole

-- | <pre>
--   owner
--   </pre>
Owner :: PermissionRole

-- | <pre>
--   reader
--   </pre>
Reader :: PermissionRole

-- | <pre>
--   viewer
--   </pre>
Viewer :: PermissionRole

-- | <pre>
--   writer
--   </pre>
Writer :: PermissionRole

-- | The response returned by a call to projects.List.
--   
--   <i>See:</i> <a>projectsListResponse</a> smart constructor.
data ProjectsListResponse

-- | Creates a value of <a>ProjectsListResponse</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>plrProjects</a></li>
--   </ul>
projectsListResponse :: ProjectsListResponse

-- | Projects returned.
plrProjects :: Lens' ProjectsListResponse [Project]
data GeoJSONGeometry

-- | Creates a value of <a>GeoJSONGeometry</a> with the minimum fields
--   required to make a request.
geoJSONGeometry :: GeoJSONGeometry
data MapLayer

-- | Creates a value of <a>MapLayer</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>mlDefaultViewport</a></li>
--   <li><a>mlVisibility</a></li>
--   <li><a>mlKey</a></li>
--   <li><a>mlName</a></li>
--   <li><a>mlId</a></li>
--   <li><a>mlType</a></li>
--   </ul>
mapLayer :: MapLayer

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mlDefaultViewport :: Lens' MapLayer [Double]

-- | The visibility setting of this MapLayer. One of "defaultOn" or
--   "defaultOff".
mlVisibility :: Lens' MapLayer (Maybe Text)

-- | A user defined alias for this MapLayer, specific to this Map.
mlKey :: Lens' MapLayer (Maybe Text)

-- | The name of this MapLayer.
mlName :: Lens' MapLayer (Maybe Text)

-- | The ID of this MapLayer. This ID can be used to request more details
--   about the layer.
mlId :: Lens' MapLayer (Maybe Text)

-- | Identifies this object as a MapLayer.
mlType :: Lens' MapLayer (Maybe MapLayerType)

-- | Zoom level range. Zoom levels are restricted between 0 and 24,
--   inclusive.
--   
--   <i>See:</i> <a>zoomLevels</a> smart constructor.
data ZoomLevels

-- | Creates a value of <a>ZoomLevels</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>zlMax</a></li>
--   <li><a>zlMin</a></li>
--   </ul>
zoomLevels :: ZoomLevels

-- | Maximum zoom level.
zlMax :: Lens' ZoomLevels (Maybe Int32)

-- | Minimum zoom level.
zlMin :: Lens' ZoomLevels (Maybe Int32)

-- | A feature info contains information about individual feature.
--   
--   <i>See:</i> <a>featureInfo</a> smart constructor.
data FeatureInfo

-- | Creates a value of <a>FeatureInfo</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>fiContent</a></li>
--   </ul>
featureInfo :: FeatureInfo

-- | HTML template of the info window. If not provided, a default template
--   with all attributes will be generated.
fiContent :: Lens' FeatureInfo (Maybe Text)

-- | The precision of acquisition time.
data AcquisitionTimePrecision

-- | <pre>
--   day
--   </pre>
Day :: AcquisitionTimePrecision

-- | <pre>
--   hour
--   </pre>
Hour :: AcquisitionTimePrecision

-- | <pre>
--   minute
--   </pre>
Minute :: AcquisitionTimePrecision

-- | <pre>
--   month
--   </pre>
Month :: AcquisitionTimePrecision

-- | <pre>
--   second
--   </pre>
Second :: AcquisitionTimePrecision

-- | <pre>
--   year
--   </pre>
Year :: AcquisitionTimePrecision

-- | Scaled shape size range in pixels. For circles, size corresponds to
--   diameter.
--   
--   <i>See:</i> <a>sizeRange</a> smart constructor.
data SizeRange

-- | Creates a value of <a>SizeRange</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>srMax</a></li>
--   <li><a>srMin</a></li>
--   </ul>
sizeRange :: SizeRange

-- | Maximum size, in pixels.
srMax :: Lens' SizeRange (Maybe Double)

-- | Minimum size, in pixels.
srMin :: Lens' SizeRange (Maybe Double)

-- | The type of scaling function to use. Defaults to SQRT. Currently only
--   linear and square root scaling are supported.
data ScalingFunctionScalingType

-- | <pre>
--   linear
--   </pre>
Linear :: ScalingFunctionScalingType

-- | <pre>
--   sqrt
--   </pre>
Sqrt :: ScalingFunctionScalingType
data MapFolder

-- | Creates a value of <a>MapFolder</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>mfExpandable</a></li>
--   <li><a>mfDefaultViewport</a></li>
--   <li><a>mfContents</a></li>
--   <li><a>mfVisibility</a></li>
--   <li><a>mfKey</a></li>
--   <li><a>mfName</a></li>
--   <li><a>mfType</a></li>
--   </ul>
mapFolder :: MapFolder

-- | The expandability setting of this MapFolder. If true, the folder can
--   be expanded.
mfExpandable :: Lens' MapFolder (Maybe Bool)

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mfDefaultViewport :: Lens' MapFolder [Double]
mfContents :: Lens' MapFolder [MapItem]

-- | The visibility setting of this MapFolder. One of "defaultOn" or
--   "defaultOff".
mfVisibility :: Lens' MapFolder (Maybe Text)

-- | A user defined alias for this MapFolder, specific to this Map.
mfKey :: Lens' MapFolder (Maybe Text)

-- | The name of this MapFolder.
mfName :: Lens' MapFolder (Maybe Text)

-- | Identifies this object as a MapFolder.
mfType :: Lens' MapFolder (Maybe MapFolderType)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data AssetsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
ALROwner :: AssetsListRole

-- | <tt>reader</tt> The user can read the asset.
ALRReader :: AssetsListRole

-- | <tt>writer</tt> The user can read and write the asset.
ALRWriter :: AssetsListRole
data RastersListProcessingStatus

-- | <tt>complete</tt> The raster has completed processing.
RLPSComplete :: RastersListProcessingStatus

-- | <tt>failed</tt> The raster has failed processing.
RLPSFailed :: RastersListProcessingStatus

-- | <tt>notReady</tt> The raster is not ready for processing.
RLPSNotReady :: RastersListProcessingStatus

-- | <tt>processing</tt> The raster is processing.
RLPSProcessing :: RastersListProcessingStatus

-- | <tt>ready</tt> The raster is ready for processing.
RLPSReady :: RastersListProcessingStatus

-- | A Maps Engine project groups a collection of resources.
--   
--   <i>See:</i> <a>project</a> smart constructor.
data Project

-- | Creates a value of <a>Project</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>proName</a></li>
--   <li><a>proId</a></li>
--   </ul>
project :: Project

-- | A user provided name for this Maps Engine project.
proName :: Lens' Project (Maybe Text)

-- | An ID used to refer to this Maps Engine project.
proId :: Lens' Project (Maybe Text)

-- | Basic color used in styling.
--   
--   <i>See:</i> <a>color</a> smart constructor.
data Color

-- | Creates a value of <a>Color</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>cColor</a></li>
--   <li><a>cOpacity</a></li>
--   </ul>
color :: Color

-- | The CSS style color, can be in format of "red" or "#7733EE".
cColor :: Lens' Color (Maybe Text)

-- | Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
cOpacity :: Lens' Color (Maybe Double)
data LayersListProcessingStatus

-- | <tt>complete</tt> The layer has completed processing.
LLPSComplete :: LayersListProcessingStatus

-- | <tt>failed</tt> The layer has failed processing.
LLPSFailed :: LayersListProcessingStatus

-- | <tt>notReady</tt> The layer is not ready for processing.
LLPSNotReady :: LayersListProcessingStatus

-- | <tt>processing</tt> The layer is processing.
LLPSProcessing :: LayersListProcessingStatus

-- | <tt>ready</tt> The layer is ready for processing.
LLPSReady :: LayersListProcessingStatus

-- | A raster collection groups multiple Raster resources for inclusion in
--   a Layer.
--   
--   <i>See:</i> <a>rasterCollection</a> smart constructor.
data RasterCollection

-- | Creates a value of <a>RasterCollection</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>rcCreationTime</a></li>
--   <li><a>rcWritersCanEditPermissions</a></li>
--   <li><a>rcEtag</a></li>
--   <li><a>rcCreatorEmail</a></li>
--   <li><a>rcRasterType</a></li>
--   <li><a>rcLastModifiedTime</a></li>
--   <li><a>rcLastModifierEmail</a></li>
--   <li><a>rcName</a></li>
--   <li><a>rcBbox</a></li>
--   <li><a>rcProcessingStatus</a></li>
--   <li><a>rcMosaic</a></li>
--   <li><a>rcId</a></li>
--   <li><a>rcProjectId</a></li>
--   <li><a>rcDraftAccessList</a></li>
--   <li><a>rcDescription</a></li>
--   <li><a>rcAttribution</a></li>
--   <li><a>rcTags</a></li>
--   </ul>
rasterCollection :: RasterCollection

-- | The creation time of this RasterCollection. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcCreationTime :: Lens' RasterCollection (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
rcWritersCanEditPermissions :: Lens' RasterCollection (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
rcEtag :: Lens' RasterCollection (Maybe Text)

-- | The email address of the creator of this raster collection. This is
--   only returned on GET requests and not LIST requests.
rcCreatorEmail :: Lens' RasterCollection (Maybe Text)

-- | The type of rasters contained within this RasterCollection.
rcRasterType :: Lens' RasterCollection (Maybe RasterCollectionRasterType)

-- | The last modified time of this RasterCollection. The value is an RFC
--   3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcLastModifiedTime :: Lens' RasterCollection (Maybe UTCTime)

-- | The email address of the last modifier of this raster collection. This
--   is only returned on GET requests and not LIST requests.
rcLastModifierEmail :: Lens' RasterCollection (Maybe Text)

-- | The name of this RasterCollection, supplied by the author.
rcName :: Lens' RasterCollection (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   RasterCollection. The box is expressed as \"west, south, east,
--   north\". The numbers represent latitude and longitude in decimal
--   degrees.
rcBbox :: Lens' RasterCollection [Double]

-- | The processing status of this RasterCollection.
rcProcessingStatus :: Lens' RasterCollection (Maybe RasterCollectionProcessingStatus)

-- | True if this RasterCollection is a mosaic.
rcMosaic :: Lens' RasterCollection (Maybe Bool)

-- | A globally unique ID, used to refer to this RasterCollection.
rcId :: Lens' RasterCollection (Maybe Text)

-- | The ID of the project that this RasterCollection is in.
rcProjectId :: Lens' RasterCollection (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
rcDraftAccessList :: Lens' RasterCollection (Maybe Text)

-- | The description of this RasterCollection, supplied by the author.
rcDescription :: Lens' RasterCollection (Maybe Text)

-- | The name of the attribution to be used for this RasterCollection.
--   Note: Attribution is returned in response to a get request but not a
--   list request. After requesting a list of raster collections, you'll
--   need to send a get request to retrieve the attribution for each raster
--   collection.
rcAttribution :: Lens' RasterCollection (Maybe Text)

-- | Tags of this RasterCollection.
rcTags :: Lens' RasterCollection [Text]

-- | Stroke of the line.
--   
--   <i>See:</i> <a>lineStyleStroke</a> smart constructor.
data LineStyleStroke

-- | Creates a value of <a>LineStyleStroke</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>lssColor</a></li>
--   <li><a>lssWidth</a></li>
--   <li><a>lssOpacity</a></li>
--   </ul>
lineStyleStroke :: LineStyleStroke

-- | Color of the line.
lssColor :: Lens' LineStyleStroke (Maybe Text)

-- | Width of the line, in pixels. 0 &lt;= width &lt;= 10. If width is set
--   to 0, the line will be invisible.
lssWidth :: Lens' LineStyleStroke (Maybe Double)

-- | Opacity of the line.
lssOpacity :: Lens' LineStyleStroke (Maybe Double)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RasterCollectionsRastersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RCRLROwner :: RasterCollectionsRastersListRole

-- | <tt>reader</tt> The user can read the asset.
RCRLRReader :: RasterCollectionsRastersListRole

-- | <tt>writer</tt> The user can read and write the asset.
RCRLRWriter :: RasterCollectionsRastersListRole

-- | Identifies this object as a GeoJsonMultiPolygon.
data GeoJSONMultiPolygonType

-- | <pre>
--   MultiPolygon
--   </pre>
MultiPolygon :: GeoJSONMultiPolygonType

-- | Identifies this object as a GeoJsonMultiPoint.
data GeoJSONMultiPointType

-- | <pre>
--   MultiPoint
--   </pre>
MultiPoint :: GeoJSONMultiPointType

-- | The response returned by a call to
--   rasterCollections.rasters.batchDelete.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchDeleteResponse</a> smart
--   constructor.
data RasterCollectionsRastersBatchDeleteResponse

-- | Creates a value of <a>RasterCollectionsRastersBatchDeleteResponse</a>
--   with the minimum fields required to make a request.
rasterCollectionsRastersBatchDeleteResponse :: RasterCollectionsRastersBatchDeleteResponse

-- | The response returned by a call to any asset's Process method.
--   
--   <i>See:</i> <a>processResponse</a> smart constructor.
data ProcessResponse

-- | Creates a value of <a>ProcessResponse</a> with the minimum fields
--   required to make a request.
processResponse :: ProcessResponse
data TableColumn

-- | Creates a value of <a>TableColumn</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>tcName</a></li>
--   <li><a>tcType</a></li>
--   </ul>
tableColumn :: TableColumn

-- | The column name.
tcName :: Lens' TableColumn (Maybe Text)

-- | The type of data stored in this column.
tcType :: Lens' TableColumn (Maybe TableColumnType)

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
data PublishedLayerLayerType

-- | <pre>
--   image
--   </pre>
Image :: PublishedLayerLayerType

-- | <pre>
--   vector
--   </pre>
Vector :: PublishedLayerLayerType
data TablesListProcessingStatus

-- | <tt>complete</tt> The table has completed processing.
TLPSComplete :: TablesListProcessingStatus

-- | <tt>failed</tt> The table has failed processing.
TLPSFailed :: TablesListProcessingStatus

-- | <tt>notReady</tt> The table is not ready for processing.
TLPSNotReady :: TablesListProcessingStatus

-- | <tt>processing</tt> The table is processing.
TLPSProcessing :: TablesListProcessingStatus

-- | <tt>ready</tt> The table is ready for processing.
TLPSReady :: TablesListProcessingStatus

-- | An asset is any Google Maps Engine resource that has a globally unique
--   ID. Assets include maps, layers, vector tables, raster collections,
--   and rasters. Projects and features are not considered assets. More
--   detailed information about an asset can be obtained by querying the
--   asset's particular endpoint.
--   
--   <i>See:</i> <a>asset</a> smart constructor.
data Asset

-- | Creates a value of <a>Asset</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>aCreationTime</a></li>
--   <li><a>aWritersCanEditPermissions</a></li>
--   <li><a>aEtag</a></li>
--   <li><a>aCreatorEmail</a></li>
--   <li><a>aLastModifiedTime</a></li>
--   <li><a>aLastModifierEmail</a></li>
--   <li><a>aName</a></li>
--   <li><a>aBbox</a></li>
--   <li><a>aResource</a></li>
--   <li><a>aId</a></li>
--   <li><a>aProjectId</a></li>
--   <li><a>aType</a></li>
--   <li><a>aDescription</a></li>
--   <li><a>aTags</a></li>
--   </ul>
asset :: Asset

-- | The creation time of this asset. The value is an RFC 3339-formatted
--   date-time value (for example, 1970-01-01T00:00:00Z).
aCreationTime :: Lens' Asset (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
aWritersCanEditPermissions :: Lens' Asset (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
aEtag :: Lens' Asset (Maybe Text)

-- | The email address of the creator of this asset. This is only returned
--   on GET requests and not LIST requests.
aCreatorEmail :: Lens' Asset (Maybe Text)

-- | The last modified time of this asset. The value is an RFC
--   3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
aLastModifiedTime :: Lens' Asset (Maybe UTCTime)

-- | The email address of the last modifier of this asset. This is only
--   returned on GET requests and not LIST requests.
aLastModifierEmail :: Lens' Asset (Maybe Text)

-- | The asset's name.
aName :: Lens' Asset (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   asset. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
aBbox :: Lens' Asset [Double]

-- | The URL to query to retrieve the asset's complete object. The assets
--   endpoint only returns high-level information about a resource.
aResource :: Lens' Asset (Maybe Text)

-- | The asset's globally unique ID.
aId :: Lens' Asset (Maybe Text)

-- | The ID of the project to which the asset belongs.
aProjectId :: Lens' Asset (Maybe Text)

-- | The type of asset. One of raster, rasterCollection, table, map, or
--   layer.
aType :: Lens' Asset (Maybe AssetType)

-- | The asset's description.
aDescription :: Lens' Asset (Maybe Text)

-- | An array of text strings, with each string representing a tag. More
--   information about tags can be found in the Tagging data article of the
--   Maps Engine help center.
aTags :: Lens' Asset [Text]

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
data LayerLayerType

-- | <pre>
--   image
--   </pre>
LLTImage :: LayerLayerType

-- | <pre>
--   vector
--   </pre>
LLTVector :: LayerLayerType

-- | Parameters for styling points as scaled shapes.
--   
--   <i>See:</i> <a>scaledShape</a> smart constructor.
data ScaledShape

-- | Creates a value of <a>ScaledShape</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>ssBOrder</a></li>
--   <li><a>ssFill</a></li>
--   <li><a>ssShape</a></li>
--   </ul>
scaledShape :: ScaledShape

-- | Border color/width of the shape. If not specified the shape won't have
--   a border.
ssBOrder :: Lens' ScaledShape (Maybe BOrder)

-- | The fill color of the shape. If not specified the shape will be
--   transparent (although the borders may not be).
ssFill :: Lens' ScaledShape (Maybe Color)

-- | Name of the shape.
ssShape :: Lens' ScaledShape (Maybe ScaledShapeShape)

-- | The account type.
data PermissionType

-- | <pre>
--   anyone
--   </pre>
Anyone :: PermissionType

-- | <pre>
--   group
--   </pre>
Group :: PermissionType

-- | <pre>
--   user
--   </pre>
User :: PermissionType

-- | The processing status of this map. Map processing is automatically
--   started once a map becomes ready for processing.
data MapProcessingStatus

-- | <pre>
--   complete
--   </pre>
MPSComplete :: MapProcessingStatus

-- | <pre>
--   failed
--   </pre>
MPSFailed :: MapProcessingStatus

-- | <pre>
--   notReady
--   </pre>
MPSNotReady :: MapProcessingStatus

-- | <pre>
--   processing
--   </pre>
MPSProcessing :: MapProcessingStatus

-- | <pre>
--   ready
--   </pre>
MPSReady :: MapProcessingStatus

-- | The request sent to features.BatchDelete.
--   
--   <i>See:</i> <a>featuresBatchDeleteRequest</a> smart constructor.
data FeaturesBatchDeleteRequest

-- | Creates a value of <a>FeaturesBatchDeleteRequest</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>fbdrPrimaryKeys</a></li>
--   <li><a>fbdrGxIds</a></li>
--   </ul>
featuresBatchDeleteRequest :: FeaturesBatchDeleteRequest
fbdrPrimaryKeys :: Lens' FeaturesBatchDeleteRequest [Text]
fbdrGxIds :: Lens' FeaturesBatchDeleteRequest [Text]

-- | Deprecated: The version parameter indicates which version of the map
--   should be returned. When version is set to published, the published
--   version of the map will be returned. Please use the maps.getPublished
--   endpoint instead.
data MapsGetVersion

-- | <tt>draft</tt> The draft version.
Draft :: MapsGetVersion

-- | <tt>published</tt> The published version.
Published :: MapsGetVersion

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data TablesListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
TLROwner :: TablesListRole

-- | <tt>reader</tt> The user can read the asset.
TLRReader :: TablesListRole

-- | <tt>writer</tt> The user can read and write the asset.
TLRWriter :: TablesListRole

-- | An icon is a user-uploaded image that can be used to style point
--   geometries.
--   
--   <i>See:</i> <a>icon</a> smart constructor.
data Icon

-- | Creates a value of <a>Icon</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>iName</a></li>
--   <li><a>iId</a></li>
--   <li><a>iDescription</a></li>
--   </ul>
icon :: Icon

-- | The name of this Icon, supplied by the author.
iName :: Lens' Icon (Maybe Text)

-- | An ID used to refer to this Icon.
iId :: Lens' Icon (Maybe Text)

-- | The description of this Icon, supplied by the author.
iDescription :: Lens' Icon (Maybe Text)

-- | The type of the vector style. Currently, only displayRule is
--   supported.
data VectorStyleType

-- | <pre>
--   displayRule
--   </pre>
VSTDisplayRule :: VectorStyleType

-- | Identifies this object as a GeoJsonLineString.
data GeoJSONLineStringType

-- | <pre>
--   LineString
--   </pre>
LineString :: GeoJSONLineStringType

-- | The response returned by a call to parents.List.
--   
--   <i>See:</i> <a>parentsListResponse</a> smart constructor.
data ParentsListResponse

-- | Creates a value of <a>ParentsListResponse</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>plrNextPageToken</a></li>
--   <li><a>plrParents</a></li>
--   </ul>
parentsListResponse :: ParentsListResponse

-- | Next page token.
plrNextPageToken :: Lens' ParentsListResponse (Maybe Text)

-- | The parent assets.
plrParents :: Lens' ParentsListResponse [Parent]

-- | The response returned by a call to features.List.
--   
--   <i>See:</i> <a>featuresListResponse</a> smart constructor.
data FeaturesListResponse

-- | Creates a value of <a>FeaturesListResponse</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>flrNextPageToken</a></li>
--   <li><a>flrAllowedQueriesPerSecond</a></li>
--   <li><a>flrSchema</a></li>
--   <li><a>flrFeatures</a></li>
--   <li><a>flrType</a></li>
--   </ul>
featuresListResponse :: FeaturesListResponse

-- | Next page token.
flrNextPageToken :: Lens' FeaturesListResponse (Maybe Text)

-- | An indicator of the maximum rate at which queries may be made, if all
--   queries were as expensive as this query.
flrAllowedQueriesPerSecond :: Lens' FeaturesListResponse (Maybe Double)

-- | The feature schema.
flrSchema :: Lens' FeaturesListResponse (Maybe Schema)

-- | Resources returned.
flrFeatures :: Lens' FeaturesListResponse [Feature]
flrType :: Lens' FeaturesListResponse Text

-- | The response returned by a call to
--   rasterCollections.rasters.batchInsert.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchInsertResponse</a> smart
--   constructor.
data RasterCollectionsRastersBatchInsertResponse

-- | Creates a value of <a>RasterCollectionsRastersBatchInsertResponse</a>
--   with the minimum fields required to make a request.
rasterCollectionsRastersBatchInsertResponse :: RasterCollectionsRastersBatchInsertResponse

-- | The publishing status of this layer.
data LayerPublishingStatus

-- | <pre>
--   notPublished
--   </pre>
LPSNotPublished :: LayerPublishingStatus

-- | <pre>
--   published
--   </pre>
LPSPublished :: LayerPublishingStatus

-- | Identifies this object as a MapKmlLink.
data MapKmlLinkType

-- | <pre>
--   kmlLink
--   </pre>
KmlLink :: MapKmlLinkType

-- | Deprecated: The type of the datasources used to build this Layer.
--   Note: This has been replaced by layerType, but is still available for
--   now to maintain backward compatibility.
data LayerDatasourceType

-- | <pre>
--   image
--   </pre>
LDTImage :: LayerDatasourceType

-- | <pre>
--   table
--   </pre>
LDTTable :: LayerDatasourceType

-- | Identifies this object as a GeoJsonGeometryCollection.
data GeoJSONGeometryCollectionType

-- | <pre>
--   GeometryCollection
--   </pre>
GeometryCollection :: GeoJSONGeometryCollectionType

-- | The response returned by a call to icons.List.
--   
--   <i>See:</i> <a>iconsListResponse</a> smart constructor.
data IconsListResponse

-- | Creates a value of <a>IconsListResponse</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>ilrNextPageToken</a></li>
--   <li><a>ilrIcons</a></li>
--   </ul>
iconsListResponse :: IconsListResponse

-- | Next page token.
ilrNextPageToken :: Lens' IconsListResponse (Maybe Text)

-- | Resources returned.
ilrIcons :: Lens' IconsListResponse [Icon]

-- | Text label style.
--   
--   <i>See:</i> <a>labelStyle</a> smart constructor.
data LabelStyle

-- | Creates a value of <a>LabelStyle</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>lsFontStyle</a></li>
--   <li><a>lsColor</a></li>
--   <li><a>lsSize</a></li>
--   <li><a>lsOpacity</a></li>
--   <li><a>lsOutline</a></li>
--   <li><a>lsFontWeight</a></li>
--   <li><a>lsColumn</a></li>
--   </ul>
labelStyle :: LabelStyle

-- | Font style of the label, defaults to 'normal'.
lsFontStyle :: Lens' LabelStyle (Maybe LabelStyleFontStyle)

-- | Color of the text. If not provided, default to black.
lsColor :: Lens' LabelStyle (Maybe Text)

-- | Font size of the label, in pixels. 8 &lt;= size &lt;= 15. If not
--   provided, a default size will be provided.
lsSize :: Lens' LabelStyle (Maybe Double)

-- | Opacity of the text.
lsOpacity :: Lens' LabelStyle (Maybe Double)

-- | Outline color of the text.
lsOutline :: Lens' LabelStyle (Maybe Color)

-- | Font weight of the label, defaults to 'normal'.
lsFontWeight :: Lens' LabelStyle (Maybe LabelStyleFontWeight)

-- | The column value of the feature to be displayed.
lsColumn :: Lens' LabelStyle (Maybe Text)

-- | The request sent to rasterCollections.Rasters.BatchDelete.
--   
--   <i>See:</i> <a>rasterCollectionsRasterBatchDeleteRequest</a> smart
--   constructor.
data RasterCollectionsRasterBatchDeleteRequest

-- | Creates a value of <a>RasterCollectionsRasterBatchDeleteRequest</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>rcrbdrIds</a></li>
--   </ul>
rasterCollectionsRasterBatchDeleteRequest :: RasterCollectionsRasterBatchDeleteRequest

-- | An array of Raster asset IDs to be removed from this RasterCollection.
rcrbdrIds :: Lens' RasterCollectionsRasterBatchDeleteRequest [Text]

-- | A schema indicating the properties which may be associated with
--   features within a Table, and the types of those properties.
--   
--   <i>See:</i> <a>schema</a> smart constructor.
data Schema

-- | Creates a value of <a>Schema</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>sPrimaryKey</a></li>
--   <li><a>sColumns</a></li>
--   <li><a>sPrimaryGeometry</a></li>
--   </ul>
schema :: Schema

-- | The name of the column that contains the unique identifier of a
--   Feature.
sPrimaryKey :: Lens' Schema (Maybe Text)

-- | An array of TableColumn objects. The first object in the array must be
--   named geometry and be of type points, lineStrings, polygons, or
--   mixedGeometry.
sColumns :: Lens' Schema [TableColumn]

-- | The name of the column that contains a feature's geometry. This field
--   can be omitted during table create; Google Maps Engine supports only a
--   single geometry column, which must be named geometry and be the first
--   object in the columns array.
sPrimaryGeometry :: Lens' Schema (Maybe Text)
data MapItem

-- | Creates a value of <a>MapItem</a> with the minimum fields required to
--   make a request.
mapItem :: MapItem

-- | Identifies this object as a GeoJsonPoint.
data GeoJSONPointType

-- | <pre>
--   Point
--   </pre>
Point :: GeoJSONPointType

-- | Identifies this object as a GeoJsonPolygon.
data GeoJSONPolygonType

-- | <pre>
--   Polygon
--   </pre>
Polygon :: GeoJSONPolygonType

-- | The request sent to rasterCollections.Rasters.BatchInsert.
--   
--   <i>See:</i> <a>rasterCollectionsRastersBatchInsertRequest</a> smart
--   constructor.
data RasterCollectionsRastersBatchInsertRequest

-- | Creates a value of <a>RasterCollectionsRastersBatchInsertRequest</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>rcrbirIds</a></li>
--   </ul>
rasterCollectionsRastersBatchInsertRequest :: RasterCollectionsRastersBatchInsertRequest

-- | An array of Raster asset IDs to be added to this RasterCollection.
rcrbirIds :: Lens' RasterCollectionsRastersBatchInsertRequest [Text]

-- | The published version of a map asset.
--   
--   <i>See:</i> <a>publishedMap</a> smart constructor.
data PublishedMap

-- | Creates a value of <a>PublishedMap</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>pmDefaultViewport</a></li>
--   <li><a>pmContents</a></li>
--   <li><a>pmName</a></li>
--   <li><a>pmId</a></li>
--   <li><a>pmProjectId</a></li>
--   <li><a>pmDescription</a></li>
--   </ul>
publishedMap :: PublishedMap

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
pmDefaultViewport :: Lens' PublishedMap [Double]

-- | The contents of this Map.
pmContents :: Lens' PublishedMap [MapItem]

-- | The name of this Map, supplied by the author.
pmName :: Lens' PublishedMap (Maybe Text)

-- | A globally unique ID, used to refer to this Map.
pmId :: Lens' PublishedMap (Maybe Text)

-- | The ID of the project that this Map is in.
pmProjectId :: Lens' PublishedMap (Maybe Text)

-- | The description of this Map, supplied by the author.
pmDescription :: Lens' PublishedMap (Maybe Text)

-- | Acquisition time represents acquired time of a raster.
--   
--   <i>See:</i> <a>acquisitionTime</a> smart constructor.
data AcquisitionTime

-- | Creates a value of <a>AcquisitionTime</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>atStart</a></li>
--   <li><a>atPrecision</a></li>
--   <li><a>atEnd</a></li>
--   </ul>
acquisitionTime :: AcquisitionTime

-- | The acquisition time, or start time if acquisition time is a range.
--   The value is an RFC 3339 formatted date-time value
--   (1970-01-01T00:00:00Z).
atStart :: Lens' AcquisitionTime (Maybe UTCTime)

-- | The precision of acquisition time.
atPrecision :: Lens' AcquisitionTime (Maybe AcquisitionTimePrecision)

-- | The end time if acquisition time is a range. The value is an RFC 3339
--   formatted date-time value (1970-01-01T00:00:00Z).
atEnd :: Lens' AcquisitionTime (Maybe UTCTime)

-- | Deprecated: The version parameter indicates which version of the layer
--   should be returned. When version is set to published, the published
--   version of the layer will be returned. Please use the
--   layers.getPublished endpoint instead.
data LayersGetVersion

-- | <tt>draft</tt> The draft version.
LGVDraft :: LayersGetVersion

-- | <tt>published</tt> The published version.
LGVPublished :: LayersGetVersion

-- | The response returned by a call to tables.List. Note: The list
--   response does not include all the fields available in a table. Refer
--   to the table resource description for details of the fields that are
--   not included. You'll need to send a get request to retrieve the
--   additional fields for each table.
--   
--   <i>See:</i> <a>tablesListResponse</a> smart constructor.
data TablesListResponse

-- | Creates a value of <a>TablesListResponse</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>tlrNextPageToken</a></li>
--   <li><a>tlrTables</a></li>
--   </ul>
tablesListResponse :: TablesListResponse

-- | Next page token.
tlrNextPageToken :: Lens' TablesListResponse (Maybe ByteString)

-- | Resources returned.
tlrTables :: Lens' TablesListResponse [Table]

-- | Style for icon, this is part of point style.
--   
--   <i>See:</i> <a>iconStyle</a> smart constructor.
data IconStyle

-- | Creates a value of <a>IconStyle</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>isScaledShape</a></li>
--   <li><a>isScalingFunction</a></li>
--   <li><a>isName</a></li>
--   <li><a>isId</a></li>
--   </ul>
iconStyle :: IconStyle

-- | A scalable shape.
isScaledShape :: Lens' IconStyle (Maybe ScaledShape)

-- | The function used to scale shapes. Required when a scaledShape is
--   specified.
isScalingFunction :: Lens' IconStyle (Maybe ScalingFunction)

-- | Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock
--   icon names for valid icon names. For example, to specify small_red,
--   set name to 'gx_small_red'.
isName :: Lens' IconStyle (Maybe Text)

-- | Custom icon id.
isId :: Lens' IconStyle (Maybe Text)

-- | A display rule of the vector style.
--   
--   <i>See:</i> <a>displayRule</a> smart constructor.
data DisplayRule

-- | Creates a value of <a>DisplayRule</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>drPointOptions</a></li>
--   <li><a>drPolygonOptions</a></li>
--   <li><a>drZoomLevels</a></li>
--   <li><a>drFilters</a></li>
--   <li><a>drName</a></li>
--   <li><a>drLineOptions</a></li>
--   </ul>
displayRule :: DisplayRule

-- | Style applied to points. Required for Point Geometry.
drPointOptions :: Lens' DisplayRule (Maybe PointStyle)

-- | Style applied to polygons. Required for Polygon Geometry.
drPolygonOptions :: Lens' DisplayRule (Maybe PolygonStyle)

-- | The zoom levels that this display rule apply.
drZoomLevels :: Lens' DisplayRule (Maybe ZoomLevels)

-- | This display rule will only be applied to features that match all of
--   the filters here. If filters is empty, then the rule applies to all
--   features.
drFilters :: Lens' DisplayRule [Filter]

-- | Display rule name. Name is not unique and cannot be used for
--   identification purpose.
drName :: Lens' DisplayRule (Maybe Text)

-- | Style applied to lines. Required for LineString Geometry.
drLineOptions :: Lens' DisplayRule (Maybe LineStyle)

-- | Border in line style. Both color and width are required.
--   
--   <i>See:</i> <a>bOrder</a> smart constructor.
data BOrder

-- | Creates a value of <a>BOrder</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>boColor</a></li>
--   <li><a>boWidth</a></li>
--   <li><a>boOpacity</a></li>
--   </ul>
bOrder :: BOrder

-- | Color of the border.
boColor :: Lens' BOrder (Maybe Text)

-- | Width of the border, in pixels.
boWidth :: Lens' BOrder (Maybe Double)

-- | Opacity of the border.
boOpacity :: Lens' BOrder (Maybe Double)

-- | A Map is a collection of Layers, optionally contained within folders.
--   
--   <i>See:</i> <a>map'</a> smart constructor.
data Map

-- | Creates a value of <a>Map</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>mCreationTime</a></li>
--   <li><a>mWritersCanEditPermissions</a></li>
--   <li><a>mEtag</a></li>
--   <li><a>mDefaultViewport</a></li>
--   <li><a>mContents</a></li>
--   <li><a>mPublishingStatus</a></li>
--   <li><a>mCreatorEmail</a></li>
--   <li><a>mLastModifiedTime</a></li>
--   <li><a>mLastModifierEmail</a></li>
--   <li><a>mVersions</a></li>
--   <li><a>mName</a></li>
--   <li><a>mBbox</a></li>
--   <li><a>mProcessingStatus</a></li>
--   <li><a>mId</a></li>
--   <li><a>mProjectId</a></li>
--   <li><a>mDraftAccessList</a></li>
--   <li><a>mPublishedAccessList</a></li>
--   <li><a>mDescription</a></li>
--   <li><a>mTags</a></li>
--   </ul>
map' :: Map

-- | The creation time of this map. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
mCreationTime :: Lens' Map (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
mWritersCanEditPermissions :: Lens' Map (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
mEtag :: Lens' Map (Maybe Text)

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mDefaultViewport :: Lens' Map [Double]

-- | The contents of this Map.
mContents :: Lens' Map [MapItem]

-- | The publishing status of this map.
mPublishingStatus :: Lens' Map (Maybe MapPublishingStatus)

-- | The email address of the creator of this map. This is only returned on
--   GET requests and not LIST requests.
mCreatorEmail :: Lens' Map (Maybe Text)

-- | The last modified time of this map. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
mLastModifiedTime :: Lens' Map (Maybe UTCTime)

-- | The email address of the last modifier of this map. This is only
--   returned on GET requests and not LIST requests.
mLastModifierEmail :: Lens' Map (Maybe Text)

-- | Deprecated: An array containing the available versions of this Map.
--   Currently may only contain "published". The publishingStatus field
--   should be used instead.
mVersions :: Lens' Map [Text]

-- | The name of this Map, supplied by the author.
mName :: Lens' Map (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this Map.
--   The box is expressed as \"west, south, east, north\". The numbers
--   represent latitude and longitude in decimal degrees.
mBbox :: Lens' Map [Double]

-- | The processing status of this map. Map processing is automatically
--   started once a map becomes ready for processing.
mProcessingStatus :: Lens' Map (Maybe MapProcessingStatus)

-- | A globally unique ID, used to refer to this Map.
mId :: Lens' Map (Maybe Text)

-- | The ID of the project that this Map is in.
mProjectId :: Lens' Map (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
mDraftAccessList :: Lens' Map (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. This is an input
--   field only. It is not returned in response to a list or get request.
mPublishedAccessList :: Lens' Map (Maybe Text)

-- | The description of this Map, supplied by the author.
mDescription :: Lens' Map (Maybe Text)

-- | Tags of this Map.
mTags :: Lens' Map [Text]

-- | Identifies this object as a MapLayer.
data MapLayerType

-- | <pre>
--   layer
--   </pre>
MLTLayer :: MapLayerType

-- | The response returned by a call to rasterCollections.rasters.List.
--   
--   <i>See:</i> <a>rasterCollectionsRastersListResponse</a> smart
--   constructor.
data RasterCollectionsRastersListResponse

-- | Creates a value of <a>RasterCollectionsRastersListResponse</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>rcrlrNextPageToken</a></li>
--   <li><a>rcrlrRasters</a></li>
--   </ul>
rasterCollectionsRastersListResponse :: RasterCollectionsRastersListResponse

-- | Next page token.
rcrlrNextPageToken :: Lens' RasterCollectionsRastersListResponse (Maybe Text)

-- | Resources returned.
rcrlrRasters :: Lens' RasterCollectionsRastersListResponse [RasterCollectionsRaster]

-- | Multi Line String
--   
--   <i>See:</i> <a>geoJSONMultiLineString</a> smart constructor.
data GeoJSONMultiLineString

-- | Creates a value of <a>GeoJSONMultiLineString</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>gjmlsCoordinates</a></li>
--   <li><a>gjmlsType</a></li>
--   </ul>
geoJSONMultiLineString :: GeoJSONMultiLineString

-- | An array of at least two GeoJsonLineString coordinate arrays.
gjmlsCoordinates :: Lens' GeoJSONMultiLineString [[[Double]]]

-- | Identifies this object as a GeoJsonMultiLineString.
gjmlsType :: Lens' GeoJSONMultiLineString (Maybe GeoJSONMultiLineStringType)

-- | Parameters for scaling scaled shapes.
--   
--   <i>See:</i> <a>scalingFunction</a> smart constructor.
data ScalingFunction

-- | Creates a value of <a>ScalingFunction</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>sfValueRange</a></li>
--   <li><a>sfSizeRange</a></li>
--   <li><a>sfScalingType</a></li>
--   <li><a>sfColumn</a></li>
--   </ul>
scalingFunction :: ScalingFunction

-- | The range of values to display across the size range.
sfValueRange :: Lens' ScalingFunction (Maybe ValueRange)

-- | The range of shape sizes, in pixels. For circles, the size corresponds
--   to the diameter.
sfSizeRange :: Lens' ScalingFunction (Maybe SizeRange)

-- | The type of scaling function to use. Defaults to SQRT. Currently only
--   linear and square root scaling are supported.
sfScalingType :: Lens' ScalingFunction (Maybe ScalingFunctionScalingType)

-- | Name of the numeric column used to scale a shape.
sfColumn :: Lens' ScalingFunction (Maybe Text)

-- | Font weight of the label, defaults to 'normal'.
data LabelStyleFontWeight

-- | <pre>
--   bold
--   </pre>
Bold :: LabelStyleFontWeight

-- | <pre>
--   normal
--   </pre>
Normal :: LabelStyleFontWeight

-- | Identifies this object as a MapFolder.
data MapFolderType

-- | <pre>
--   folder
--   </pre>
Folder :: MapFolderType

-- | The processing status of this RasterCollection.
data RasterCollectionProcessingStatus

-- | <pre>
--   complete
--   </pre>
RCPSComplete :: RasterCollectionProcessingStatus

-- | <pre>
--   failed
--   </pre>
RCPSFailed :: RasterCollectionProcessingStatus

-- | <pre>
--   notReady
--   </pre>
RCPSNotReady :: RasterCollectionProcessingStatus

-- | <pre>
--   processing
--   </pre>
RCPSProcessing :: RasterCollectionProcessingStatus

-- | <pre>
--   ready
--   </pre>
RCPSReady :: RasterCollectionProcessingStatus

-- | The table version to access. See Accessing Public Data for
--   information.
data TablesFeaturesListVersion

-- | <tt>draft</tt> The draft version.
TFLVDraft :: TablesFeaturesListVersion

-- | <tt>published</tt> The published version.
TFLVPublished :: TablesFeaturesListVersion
data MapsListProcessingStatus

-- | <tt>complete</tt> The map has completed processing.
MLPSComplete :: MapsListProcessingStatus

-- | <tt>failed</tt> The map has failed processing.
MLPSFailed :: MapsListProcessingStatus

-- | <tt>notReady</tt> The map is not ready for processing.
MLPSNotReady :: MapsListProcessingStatus

-- | <tt>processing</tt> The map is processing.
MLPSProcessing :: MapsListProcessingStatus

-- | The response returned by a call to resources.List.
--   
--   <i>See:</i> <a>assetsListResponse</a> smart constructor.
data AssetsListResponse

-- | Creates a value of <a>AssetsListResponse</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>alrNextPageToken</a></li>
--   <li><a>alrAssets</a></li>
--   </ul>
assetsListResponse :: AssetsListResponse

-- | Next page token.
alrNextPageToken :: Lens' AssetsListResponse (Maybe ByteString)

-- | Assets returned.
alrAssets :: Lens' AssetsListResponse [Asset]

-- | The response returned by a call to any asset's Publish method.
--   
--   <i>See:</i> <a>publishResponse</a> smart constructor.
data PublishResponse

-- | Creates a value of <a>PublishResponse</a> with the minimum fields
--   required to make a request.
publishResponse :: PublishResponse

-- | The request sent to features.Insert.
--   
--   <i>See:</i> <a>featuresBatchInsertRequest</a> smart constructor.
data FeaturesBatchInsertRequest

-- | Creates a value of <a>FeaturesBatchInsertRequest</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>fbirFeatures</a></li>
--   <li><a>fbirNormalizeGeometries</a></li>
--   </ul>
featuresBatchInsertRequest :: FeaturesBatchInsertRequest
fbirFeatures :: Lens' FeaturesBatchInsertRequest [Feature]

-- | If true, the server will normalize feature geometries. It is assumed
--   that the South Pole is exterior to any polygons given. See here for a
--   list of normalizations. If false, all feature geometries must be given
--   already normalized. The points in all LinearRings must be listed in
--   counter-clockwise order, and LinearRings may not intersect.
fbirNormalizeGeometries :: Lens' FeaturesBatchInsertRequest Bool
data Datasource

-- | Creates a value of <a>Datasource</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>dId</a></li>
--   </ul>
datasource :: Datasource

-- | The ID of a datasource.
dId :: Lens' Datasource (Maybe Text)

-- | Font style of the label, defaults to 'normal'.
data LabelStyleFontStyle

-- | <pre>
--   italic
--   </pre>
LSFSItalic :: LabelStyleFontStyle

-- | <pre>
--   normal
--   </pre>
LSFSNormal :: LabelStyleFontStyle

-- | A raster resource.
--   
--   <i>See:</i> <a>rasterCollectionsRaster</a> smart constructor.
data RasterCollectionsRaster

-- | Creates a value of <a>RasterCollectionsRaster</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>rcrCreationTime</a></li>
--   <li><a>rcrRasterType</a></li>
--   <li><a>rcrLastModifiedTime</a></li>
--   <li><a>rcrName</a></li>
--   <li><a>rcrBbox</a></li>
--   <li><a>rcrId</a></li>
--   <li><a>rcrProjectId</a></li>
--   <li><a>rcrDescription</a></li>
--   <li><a>rcrTags</a></li>
--   </ul>
rasterCollectionsRaster :: RasterCollectionsRaster

-- | The creation time of this raster. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
rcrCreationTime :: Lens' RasterCollectionsRaster (Maybe UTCTime)

-- | The type of this Raster. Always "image" today.
rcrRasterType :: Lens' RasterCollectionsRaster Text

-- | The last modified time of this raster. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rcrLastModifiedTime :: Lens' RasterCollectionsRaster (Maybe UTCTime)

-- | The name of this Raster, supplied by the author.
rcrName :: Lens' RasterCollectionsRaster (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Raster. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitudes and longitudes in decimal degrees.
rcrBbox :: Lens' RasterCollectionsRaster [Double]

-- | A globally unique ID, used to refer to this Raster.
rcrId :: Lens' RasterCollectionsRaster (Maybe Text)

-- | The ID of the project that this Raster is in.
rcrProjectId :: Lens' RasterCollectionsRaster (Maybe Text)

-- | The description of this Raster, supplied by the author.
rcrDescription :: Lens' RasterCollectionsRaster (Maybe Text)

-- | Tags of this Raster.
rcrTags :: Lens' RasterCollectionsRaster [Text]

-- | Conditions for filtering features.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</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>fOperator</a></li>
--   <li><a>fValue</a></li>
--   <li><a>fColumn</a></li>
--   </ul>
filter' :: Filter

-- | Operation used to evaluate the filter.
fOperator :: Lens' Filter (Maybe FilterOperator)

-- | Value to be evaluated against attribute.
fValue :: Lens' Filter (Maybe JSONValue)

-- | The column name to filter on.
fColumn :: Lens' Filter (Maybe Text)
data GeoJSONMultiPoint

-- | Creates a value of <a>GeoJSONMultiPoint</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>gjmpCoordinates</a></li>
--   <li><a>gjmpType</a></li>
--   </ul>
geoJSONMultiPoint :: GeoJSONMultiPoint

-- | An array of at least two GeoJsonPoint coordinate arrays.
gjmpCoordinates :: Lens' GeoJSONMultiPoint [[Double]]

-- | Identifies this object as a GeoJsonMultiPoint.
gjmpType :: Lens' GeoJSONMultiPoint (Maybe GeoJSONMultiPointType)

-- | The type of asset. One of raster, rasterCollection, table, map, or
--   layer.
data AssetType

-- | <pre>
--   layer
--   </pre>
ATLayer :: AssetType

-- | <pre>
--   map
--   </pre>
ATMap :: AssetType

-- | <pre>
--   raster
--   </pre>
ATRaster :: AssetType

-- | <pre>
--   rasterCollection
--   </pre>
ATRasterCollection :: AssetType

-- | <pre>
--   table
--   </pre>
ATTable :: AssetType

-- | The type of this Raster. Always "image" today.
data RasterRasterType

-- | <pre>
--   image
--   </pre>
RRTImage :: RasterRasterType

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RasterCollectionsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RCLROwner :: RasterCollectionsListRole

-- | <tt>reader</tt> The user can read the asset.
RCLRReader :: RasterCollectionsListRole

-- | <tt>writer</tt> The user can read and write the asset.
RCLRWriter :: RasterCollectionsListRole

-- | Operation used to evaluate the filter.
data FilterOperator

-- | <pre>
--   !=
--   </pre>
NotEqual :: FilterOperator

-- | <pre>
--   &lt;
--   </pre>
Less :: FilterOperator

-- | <pre>
--   &lt;=
--   </pre>
LessOrEqual :: FilterOperator

-- | <pre>
--   ==
--   </pre>
Equal :: FilterOperator

-- | <pre>
--   &gt;
--   </pre>
Greater :: FilterOperator

-- | <pre>
--   &gt;=
--   </pre>
GreaterEqual :: FilterOperator

-- | <pre>
--   contains
--   </pre>
Contains :: FilterOperator

-- | <pre>
--   endsWith
--   </pre>
EndsWith :: FilterOperator

-- | <pre>
--   startsWith
--   </pre>
StartsWith :: FilterOperator

-- | The type of data stored in this column.
data TableColumnType

-- | <pre>
--   datetime
--   </pre>
Datetime :: TableColumnType

-- | <pre>
--   double
--   </pre>
Double :: TableColumnType

-- | <pre>
--   integer
--   </pre>
Integer :: TableColumnType

-- | <pre>
--   lineStrings
--   </pre>
LineStrings :: TableColumnType

-- | <pre>
--   mixedGeometry
--   </pre>
MixedGeometry :: TableColumnType

-- | <pre>
--   points
--   </pre>
Points :: TableColumnType

-- | <pre>
--   polygons
--   </pre>
Polygons :: TableColumnType

-- | <pre>
--   string
--   </pre>
String :: TableColumnType
data GeoJSONMultiPolygon

-- | Creates a value of <a>GeoJSONMultiPolygon</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>gjsonmpCoordinates</a></li>
--   <li><a>gjsonmpType</a></li>
--   </ul>
geoJSONMultiPolygon :: GeoJSONMultiPolygon

-- | An array of at least two GeoJsonPolygon coordinate arrays.
gjsonmpCoordinates :: Lens' GeoJSONMultiPolygon [[[[Double]]]]

-- | Identifies this object as a GeoJsonMultiPolygon.
gjsonmpType :: Lens' GeoJSONMultiPolygon (Maybe GeoJSONMultiPolygonType)

-- | A Layer combines multiple datasources, with styling information, for
--   presentation on a map.
--   
--   <i>See:</i> <a>layer</a> smart constructor.
data Layer

-- | Creates a value of <a>Layer</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>layCreationTime</a></li>
--   <li><a>layWritersCanEditPermissions</a></li>
--   <li><a>layStyle</a></li>
--   <li><a>layEtag</a></li>
--   <li><a>layDatasourceType</a></li>
--   <li><a>layPublishingStatus</a></li>
--   <li><a>layCreatorEmail</a></li>
--   <li><a>layLayerType</a></li>
--   <li><a>layLastModifiedTime</a></li>
--   <li><a>layDatasources</a></li>
--   <li><a>layLastModifierEmail</a></li>
--   <li><a>layName</a></li>
--   <li><a>layBbox</a></li>
--   <li><a>layProcessingStatus</a></li>
--   <li><a>layId</a></li>
--   <li><a>layProjectId</a></li>
--   <li><a>layDraftAccessList</a></li>
--   <li><a>layPublishedAccessList</a></li>
--   <li><a>layDescription</a></li>
--   <li><a>layTags</a></li>
--   </ul>
layer :: Layer

-- | The creation time of this layer. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
layCreationTime :: Lens' Layer (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
layWritersCanEditPermissions :: Lens' Layer (Maybe Bool)

-- | The styling information for a vector layer. Note: Style information is
--   returned in response to a get request but not a list request. After
--   requesting a list of layers, you'll need to send a get request to
--   retrieve the VectorStyles for each layer.
layStyle :: Lens' Layer (Maybe VectorStyle)

-- | The ETag, used to refer to the current version of the asset.
layEtag :: Lens' Layer (Maybe Text)

-- | Deprecated: The type of the datasources used to build this Layer.
--   Note: This has been replaced by layerType, but is still available for
--   now to maintain backward compatibility.
layDatasourceType :: Lens' Layer (Maybe LayerDatasourceType)

-- | The publishing status of this layer.
layPublishingStatus :: Lens' Layer (Maybe LayerPublishingStatus)

-- | The email address of the creator of this layer. This is only returned
--   on GET requests and not LIST requests.
layCreatorEmail :: Lens' Layer (Maybe Text)

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
layLayerType :: Lens' Layer (Maybe LayerLayerType)

-- | The last modified time of this layer. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
layLastModifiedTime :: Lens' Layer (Maybe UTCTime)

-- | An array of datasources used to build this layer. If layerType is
--   "image", or layerType is not specified and datasourceType is "image",
--   then each element in this array is a reference to an Image or
--   RasterCollection. If layerType is "vector", or layerType is not
--   specified and datasourceType is "table" then each element in this
--   array is a reference to a Vector Table.
layDatasources :: Lens' Layer [Datasource]

-- | The email address of the last modifier of this layer. This is only
--   returned on GET requests and not LIST requests.
layLastModifierEmail :: Lens' Layer (Maybe Text)

-- | The name of this Layer, supplied by the author.
layName :: Lens' Layer (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Layer. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
layBbox :: Lens' Layer [Double]

-- | The processing status of this layer.
layProcessingStatus :: Lens' Layer (Maybe LayerProcessingStatus)

-- | A globally unique ID, used to refer to this Layer.
layId :: Lens' Layer (Maybe Text)

-- | The ID of the project that this Layer is in.
layProjectId :: Lens' Layer (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
layDraftAccessList :: Lens' Layer (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. Note: This is an
--   input field only. It is not returned in response to a list or get
--   request.
layPublishedAccessList :: Lens' Layer (Maybe Text)

-- | The description of this Layer, supplied by the author.
layDescription :: Lens' Layer (Maybe Text)

-- | Tags of this Layer.
layTags :: Lens' Layer [Text]

-- | Style for points.
--   
--   <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>psIcon</a></li>
--   <li><a>psLabel</a></li>
--   </ul>
pointStyle :: PointStyle

-- | Icon for the point; if it isn't null, exactly one of 'name', 'id' or
--   'scaledShape' must be set.
psIcon :: Lens' PointStyle (Maybe IconStyle)

-- | Label style for the point.
psLabel :: Lens' PointStyle (Maybe LabelStyle)
data RasterCollectionsListProcessingStatus

-- | <tt>complete</tt> The raster collection has completed processing.
RCLPSComplete :: RasterCollectionsListProcessingStatus

-- | <tt>failed</tt> The raster collection has failed processing.
RCLPSFailed :: RasterCollectionsListProcessingStatus

-- | <tt>notReady</tt> The raster collection is not ready for processing.
RCLPSNotReady :: RasterCollectionsListProcessingStatus

-- | <tt>processing</tt> The raster collection is processing.
RCLPSProcessing :: RasterCollectionsListProcessingStatus

-- | <tt>ready</tt> The raster collection is ready for processing.
RCLPSReady :: RasterCollectionsListProcessingStatus

-- | A geo-referenced raster.
--   
--   <i>See:</i> <a>raster</a> smart constructor.
data Raster

-- | Creates a value of <a>Raster</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>rrCreationTime</a></li>
--   <li><a>rrWritersCanEditPermissions</a></li>
--   <li><a>rrMaskType</a></li>
--   <li><a>rrEtag</a></li>
--   <li><a>rrCreatorEmail</a></li>
--   <li><a>rrRasterType</a></li>
--   <li><a>rrLastModifiedTime</a></li>
--   <li><a>rrLastModifierEmail</a></li>
--   <li><a>rrAcquisitionTime</a></li>
--   <li><a>rrName</a></li>
--   <li><a>rrBbox</a></li>
--   <li><a>rrProcessingStatus</a></li>
--   <li><a>rrFiles</a></li>
--   <li><a>rrId</a></li>
--   <li><a>rrProjectId</a></li>
--   <li><a>rrDraftAccessList</a></li>
--   <li><a>rrDescription</a></li>
--   <li><a>rrAttribution</a></li>
--   <li><a>rrTags</a></li>
--   </ul>
raster :: Raster

-- | The creation time of this raster. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
rrCreationTime :: Lens' Raster (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
rrWritersCanEditPermissions :: Lens' Raster (Maybe Bool)

-- | The mask processing type of this Raster.
rrMaskType :: Lens' Raster Text

-- | The ETag, used to refer to the current version of the asset.
rrEtag :: Lens' Raster (Maybe Text)

-- | The email address of the creator of this raster. This is only returned
--   on GET requests and not LIST requests.
rrCreatorEmail :: Lens' Raster (Maybe Text)

-- | The type of this Raster. Always "image" today.
rrRasterType :: Lens' Raster (Maybe RasterRasterType)

-- | The last modified time of this raster. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
rrLastModifiedTime :: Lens' Raster (Maybe UTCTime)

-- | The email address of the last modifier of this raster. This is only
--   returned on GET requests and not LIST requests.
rrLastModifierEmail :: Lens' Raster (Maybe Text)

-- | The acquisition time of this Raster.
rrAcquisitionTime :: Lens' Raster (Maybe AcquisitionTime)

-- | The name of this Raster, supplied by the author.
rrName :: Lens' Raster (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Raster. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitudes and longitudes in decimal degrees.
rrBbox :: Lens' Raster [Double]

-- | The processing status of this Raster.
rrProcessingStatus :: Lens' Raster (Maybe RasterProcessingStatus)

-- | The files associated with this Raster.
rrFiles :: Lens' Raster [File]

-- | A globally unique ID, used to refer to this Raster.
rrId :: Lens' Raster (Maybe Text)

-- | The ID of the project that this Raster is in.
rrProjectId :: Lens' Raster (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
rrDraftAccessList :: Lens' Raster (Maybe Text)

-- | The description of this Raster, supplied by the author.
rrDescription :: Lens' Raster (Maybe Text)

-- | The name of the attribution to be used for this Raster.
rrAttribution :: Lens' Raster (Maybe Text)

-- | Tags of this Raster.
rrTags :: Lens' Raster [Text]

-- | Style for polygons.
--   
--   <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>pStroke</a></li>
--   <li><a>pFill</a></li>
--   <li><a>pLabel</a></li>
--   </ul>
polygonStyle :: PolygonStyle

-- | Border of the polygon. 0 &lt; border.width &lt;= 10.
pStroke :: Lens' PolygonStyle (Maybe BOrder)

-- | Fill color of the polygon. If not provided, the polygon will be
--   transparent and not visible if there is no border.
pFill :: Lens' PolygonStyle (Maybe Color)

-- | Label style for the polygon.
pLabel :: Lens' PolygonStyle (Maybe LabelStyle)

-- | A permission defines the user or group that has access to an asset,
--   and the type of access they have.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</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>perRole</a></li>
--   <li><a>perId</a></li>
--   <li><a>perType</a></li>
--   <li><a>perDiscoverable</a></li>
--   </ul>
permission :: Permission

-- | The type of access granted to this user or group.
perRole :: Lens' Permission (Maybe PermissionRole)

-- | The unique identifier of the permission. This could be the email
--   address of the user or group this permission refers to, or the string
--   "anyone" for public permissions.
perId :: Lens' Permission (Maybe Text)

-- | The account type.
perType :: Lens' Permission (Maybe PermissionType)

-- | Indicates whether a public asset is listed and can be found via a web
--   search (value true), or is visible only to people who have a link to
--   the asset (value false).
perDiscoverable :: Lens' Permission (Maybe Bool)

-- | The published version of a layer.
--   
--   <i>See:</i> <a>publishedLayer</a> smart constructor.
data PublishedLayer

-- | Creates a value of <a>PublishedLayer</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>plLayerType</a></li>
--   <li><a>plName</a></li>
--   <li><a>plId</a></li>
--   <li><a>plProjectId</a></li>
--   <li><a>plDescription</a></li>
--   </ul>
publishedLayer :: PublishedLayer

-- | The type of the datasources used to build this Layer. This should be
--   used instead of datasourceType. At least one of layerType and
--   datasourceType and must be specified, but layerType takes precedence.
plLayerType :: Lens' PublishedLayer (Maybe PublishedLayerLayerType)

-- | The name of this Layer, supplied by the author.
plName :: Lens' PublishedLayer (Maybe Text)

-- | A globally unique ID, used to refer to this Layer.
plId :: Lens' PublishedLayer (Maybe Text)

-- | The ID of the project that this Layer is in.
plProjectId :: Lens' PublishedLayer (Maybe Text)

-- | The description of this Layer, supplied by the author.
plDescription :: Lens' PublishedLayer (Maybe Text)

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data LayersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
LLROwner :: LayersListRole

-- | <tt>reader</tt> The user can read the asset.
LLRReader :: LayersListRole

-- | <tt>writer</tt> The user can read and write the asset.
LLRWriter :: LayersListRole

-- | A collection of geographic features, and associated metadata.
--   
--   <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>tabCreationTime</a></li>
--   <li><a>tabWritersCanEditPermissions</a></li>
--   <li><a>tabEtag</a></li>
--   <li><a>tabCreatorEmail</a></li>
--   <li><a>tabLastModifiedTime</a></li>
--   <li><a>tabSchema</a></li>
--   <li><a>tabLastModifierEmail</a></li>
--   <li><a>tabName</a></li>
--   <li><a>tabBbox</a></li>
--   <li><a>tabProcessingStatus</a></li>
--   <li><a>tabFiles</a></li>
--   <li><a>tabId</a></li>
--   <li><a>tabProjectId</a></li>
--   <li><a>tabDraftAccessList</a></li>
--   <li><a>tabPublishedAccessList</a></li>
--   <li><a>tabSourceEncoding</a></li>
--   <li><a>tabDescription</a></li>
--   <li><a>tabTags</a></li>
--   </ul>
table :: Table

-- | The creation time of this table. The value is an RFC 3339 formatted
--   date-time value (e.g. 1970-01-01T00:00:00Z).
tabCreationTime :: Lens' Table (Maybe UTCTime)

-- | If true, WRITERs of the asset are able to edit the asset permissions.
tabWritersCanEditPermissions :: Lens' Table (Maybe Bool)

-- | The ETag, used to refer to the current version of the asset.
tabEtag :: Lens' Table (Maybe Text)

-- | The email address of the creator of this table. This is only returned
--   on GET requests and not LIST requests.
tabCreatorEmail :: Lens' Table (Maybe Text)

-- | The last modified time of this table. The value is an RFC 3339
--   formatted date-time value (e.g. 1970-01-01T00:00:00Z).
tabLastModifiedTime :: Lens' Table (Maybe UTCTime)

-- | The schema for this table. Note: The schema is returned in response to
--   a get request but not a list request. After requesting a list of
--   tables, you'll need to send a get request to retrieve the schema for
--   each table.
tabSchema :: Lens' Table (Maybe Schema)

-- | The email address of the last modifier of this table. This is only
--   returned on GET requests and not LIST requests.
tabLastModifierEmail :: Lens' Table (Maybe Text)

-- | The name of this table, supplied by the author.
tabName :: Lens' Table (Maybe Text)

-- | A rectangular bounding box which contains all of the data in this
--   Table. The box is expressed as \"west, south, east, north\". The
--   numbers represent latitude and longitude in decimal degrees.
tabBbox :: Lens' Table [Double]

-- | The processing status of this table.
tabProcessingStatus :: Lens' Table (Maybe TableProcessingStatus)

-- | The files associated with this table.
tabFiles :: Lens' Table [File]

-- | A globally unique ID, used to refer to this table.
tabId :: Lens' Table (Maybe Text)

-- | The ID of the project to which the table belongs.
tabProjectId :: Lens' Table (Maybe Text)

-- | Deprecated: The name of an access list of the Map Editor type. The
--   user on whose behalf the request is being sent must be an editor on
--   that access list. Note: Google Maps Engine no longer uses access
--   lists. Instead, each asset has its own list of permissions. For
--   backward compatibility, the API still accepts access lists for
--   projects that are already using access lists. If you created a GME
--   account/project after July 14th, 2014, you will not be able to send
--   API requests that include access lists. Note: This is an input field
--   only. It is not returned in response to a list or get request.
tabDraftAccessList :: Lens' Table (Maybe Text)

-- | Deprecated: The access list to whom view permissions are granted. The
--   value must be the name of a Maps Engine access list of the Map Viewer
--   type, and the user must be a viewer on that list. Note: Google Maps
--   Engine no longer uses access lists. Instead, each asset has its own
--   list of permissions. For backward compatibility, the API still accepts
--   access lists for projects that are already using access lists. If you
--   created a GME account/project after July 14th, 2014, you will not be
--   able to send API requests that include access lists. Note: This is an
--   input field only. It is not returned in response to a list or get
--   request.
tabPublishedAccessList :: Lens' Table (Maybe Text)

-- | Encoding of the uploaded files. Valid values include UTF-8, CP1251,
--   ISO 8859-1, and Shift_JIS.
tabSourceEncoding :: Lens' Table Text

-- | The description of this table, supplied by the author.
tabDescription :: Lens' Table (Maybe Text)

-- | An array of text strings, with each string representing a tag. More
--   information about tags can be found in the Tagging data article of the
--   Maps Engine help center.
tabTags :: Lens' Table [Text]

-- | A single File, which is a component of an Asset.
--   
--   <i>See:</i> <a>file</a> smart constructor.
data File

-- | Creates a value of <a>File</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>fSize</a></li>
--   <li><a>fUploadStatus</a></li>
--   <li><a>fFilename</a></li>
--   </ul>
file :: File

-- | The size of the file in bytes.
fSize :: Lens' File (Maybe Int64)

-- | The upload status of the file.
fUploadStatus :: Lens' File (Maybe FileUploadStatus)

-- | The name of the file.
fFilename :: Lens' File (Maybe Text)

-- | A vector style contains styling information for vector layer.
--   
--   <i>See:</i> <a>vectorStyle</a> smart constructor.
data VectorStyle

-- | Creates a value of <a>VectorStyle</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>vsDisplayRules</a></li>
--   <li><a>vsFeatureInfo</a></li>
--   <li><a>vsType</a></li>
--   </ul>
vectorStyle :: VectorStyle
vsDisplayRules :: Lens' VectorStyle [DisplayRule]

-- | Individual feature info, this is called Info Window in Maps Engine UI.
--   If not provided, a default template with all attributes will be
--   generated.
vsFeatureInfo :: Lens' VectorStyle (Maybe FeatureInfo)

-- | The type of the vector style. Currently, only displayRule is
--   supported.
vsType :: Lens' VectorStyle (Maybe VectorStyleType)

-- | The response returned by a call to mapsengine.permissions.batchDelete.
--   
--   <i>See:</i> <a>permissionsBatchDeleteResponse</a> smart constructor.
data PermissionsBatchDeleteResponse

-- | Creates a value of <a>PermissionsBatchDeleteResponse</a> with the
--   minimum fields required to make a request.
permissionsBatchDeleteResponse :: PermissionsBatchDeleteResponse

-- | The table version to access. See Accessing Public Data for
--   information.
data TablesFeaturesGetVersion

-- | <tt>draft</tt> The draft version.
TFGVDraft :: TablesFeaturesGetVersion

-- | <tt>published</tt> The published version.
TFGVPublished :: TablesFeaturesGetVersion
data MapKmlLink

-- | Creates a value of <a>MapKmlLink</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>mklDefaultViewport</a></li>
--   <li><a>mklVisibility</a></li>
--   <li><a>mklName</a></li>
--   <li><a>mklType</a></li>
--   <li><a>mklKmlURL</a></li>
--   </ul>
mapKmlLink :: MapKmlLink

-- | An array of four numbers (west, south, east, north) which defines the
--   rectangular bounding box of the default viewport. The numbers
--   represent latitude and longitude in decimal degrees.
mklDefaultViewport :: Lens' MapKmlLink [Double]

-- | The visibility setting of this MapKmlLink. One of "defaultOn" or
--   "defaultOff".
mklVisibility :: Lens' MapKmlLink (Maybe Text)

-- | The name of this MapKmlLink.
mklName :: Lens' MapKmlLink (Maybe Text)

-- | Identifies this object as a MapKmlLink.
mklType :: Lens' MapKmlLink (Maybe MapKmlLinkType)

-- | The URL to the KML file represented by this MapKmlLink.
mklKmlURL :: Lens' MapKmlLink (Maybe Text)

-- | The type of rasters contained within this RasterCollection.
data RasterCollectionRasterType

-- | <pre>
--   image
--   </pre>
RCRTImage :: RasterCollectionRasterType

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data RastersListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
RLROwner :: RastersListRole

-- | <tt>reader</tt> The user can read the asset.
RLRReader :: RastersListRole

-- | <tt>writer</tt> The user can read and write the asset.
RLRWriter :: RastersListRole

-- | The response returned by a call to mapsengine.permissions.batchUpdate.
--   
--   <i>See:</i> <a>permissionsBatchUpdateResponse</a> smart constructor.
data PermissionsBatchUpdateResponse

-- | Creates a value of <a>PermissionsBatchUpdateResponse</a> with the
--   minimum fields required to make a request.
permissionsBatchUpdateResponse :: PermissionsBatchUpdateResponse
data GeoJSONLineString

-- | Creates a value of <a>GeoJSONLineString</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>gjlsCoordinates</a></li>
--   <li><a>gjlsType</a></li>
--   </ul>
geoJSONLineString :: GeoJSONLineString

-- | An array of two or more positions, representing a line.
gjlsCoordinates :: Lens' GeoJSONLineString [[Double]]

-- | Identifies this object as a GeoJsonLineString.
gjlsType :: Lens' GeoJSONLineString (Maybe GeoJSONLineStringType)

-- | The response returned by a call to maps.List.published.
--   
--   <i>See:</i> <a>publishedMapsListResponse</a> smart constructor.
data PublishedMapsListResponse

-- | Creates a value of <a>PublishedMapsListResponse</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>pmlrMaps</a></li>
--   <li><a>pmlrNextPageToken</a></li>
--   </ul>
publishedMapsListResponse :: PublishedMapsListResponse

-- | Resources returned.
pmlrMaps :: Lens' PublishedMapsListResponse [PublishedMap]

-- | Next page token.
pmlrNextPageToken :: Lens' PublishedMapsListResponse (Maybe ByteString)

-- | The response returned by a call to maps.List.
--   
--   <i>See:</i> <a>mapsListResponse</a> smart constructor.
data MapsListResponse

-- | Creates a value of <a>MapsListResponse</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>mlrMaps</a></li>
--   <li><a>mlrNextPageToken</a></li>
--   </ul>
mapsListResponse :: MapsListResponse

-- | Resources returned.
mlrMaps :: Lens' MapsListResponse [Map]

-- | Next page token.
mlrNextPageToken :: Lens' MapsListResponse (Maybe ByteString)

-- | The publishing status of this map.
data MapPublishingStatus

-- | <pre>
--   notPublished
--   </pre>
MPSNotPublished :: MapPublishingStatus

-- | <pre>
--   published
--   </pre>
MPSPublished :: MapPublishingStatus

-- | A heterogenous collection of GeoJsonGeometry objects.
--   
--   <i>See:</i> <a>geoJSONGeometryCollection</a> smart constructor.
data GeoJSONGeometryCollection

-- | Creates a value of <a>GeoJSONGeometryCollection</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>gjgcGeometries</a></li>
--   <li><a>gjgcType</a></li>
--   </ul>
geoJSONGeometryCollection :: GeoJSONGeometryCollection

-- | An array of geometry objects. There must be at least 2 different types
--   of geometries in the array.
gjgcGeometries :: Lens' GeoJSONGeometryCollection [GeoJSONGeometry]

-- | Identifies this object as a GeoJsonGeometryCollection.
gjgcType :: Lens' GeoJSONGeometryCollection (Maybe GeoJSONGeometryCollectionType)
data GeoJSONPolygon

-- | Creates a value of <a>GeoJSONPolygon</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>gjpCoordinates</a></li>
--   <li><a>gjpType</a></li>
--   </ul>
geoJSONPolygon :: GeoJSONPolygon

-- | An array of LinearRings. A LinearRing is a GeoJsonLineString which is
--   closed (that is, the first and last GeoJsonPositions are equal), and
--   which contains at least four GeoJsonPositions. For polygons with
--   multiple rings, the first LinearRing is the exterior ring, and any
--   subsequent rings are interior rings (that is, holes).
gjpCoordinates :: Lens' GeoJSONPolygon [[[Double]]]

-- | Identifies this object as a GeoJsonPolygon.
gjpType :: Lens' GeoJSONPolygon (Maybe GeoJSONPolygonType)
data GeoJSONPoint

-- | Creates a value of <a>GeoJSONPoint</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>gjsonpCoordinates</a></li>
--   <li><a>gjsonpType</a></li>
--   </ul>
geoJSONPoint :: GeoJSONPoint

-- | A single GeoJsonPosition, specifying the location of the point.
gjsonpCoordinates :: Lens' GeoJSONPoint [Double]

-- | Identifies this object as a GeoJsonPoint.
gjsonpType :: Lens' GeoJSONPoint (Maybe GeoJSONPointType)

-- | The response returned by a call to layers.List. Note: The list
--   response does not include all the fields available in a layer. Refer
--   to the layer resource description for details of the fields that are
--   not included. You'll need to send a get request to retrieve the
--   additional fields for each layer.
--   
--   <i>See:</i> <a>layersListResponse</a> smart constructor.
data LayersListResponse

-- | Creates a value of <a>LayersListResponse</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>llrNextPageToken</a></li>
--   <li><a>llrLayers</a></li>
--   </ul>
layersListResponse :: LayersListResponse

-- | Next page token.
llrNextPageToken :: Lens' LayersListResponse (Maybe ByteString)

-- | Resources returned.
llrLayers :: Lens' LayersListResponse [Layer]

-- | The response returned by a call to rasters.List.
--   
--   <i>See:</i> <a>rastersListResponse</a> smart constructor.
data RastersListResponse

-- | Creates a value of <a>RastersListResponse</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>rlrNextPageToken</a></li>
--   <li><a>rlrRasters</a></li>
--   </ul>
rastersListResponse :: RastersListResponse

-- | Next page token.
rlrNextPageToken :: Lens' RastersListResponse (Maybe Text)

-- | Resources returned.
rlrRasters :: Lens' RastersListResponse [Raster]

-- | The upload status of the file.
data FileUploadStatus

-- | <pre>
--   canceled
--   </pre>
FUSCanceled :: FileUploadStatus

-- | <pre>
--   complete
--   </pre>
FUSComplete :: FileUploadStatus

-- | <pre>
--   failed
--   </pre>
FUSFailed :: FileUploadStatus

-- | <pre>
--   inProgress
--   </pre>
FUSInProgress :: FileUploadStatus

-- | The role parameter indicates that the response should only contain
--   assets where the current user has the specified level of access.
data MapsListRole

-- | <tt>owner</tt> The user can read, write and administer the asset.
MLROwner :: MapsListRole

-- | <tt>reader</tt> The user can read the asset.
MLRReader :: MapsListRole

-- | <tt>writer</tt> The user can read and write the asset.
MLRWriter :: MapsListRole
data TablesGetVersion

-- | <tt>draft</tt> The draft version.
TGVDraft :: TablesGetVersion

-- | <tt>published</tt> The published version.
TGVPublished :: TablesGetVersion
data PermissionsListResponse

-- | Creates a value of <a>PermissionsListResponse</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>plrPermissions</a></li>
--   </ul>
permissionsListResponse :: PermissionsListResponse

-- | The set of permissions associated with this asset.
plrPermissions :: Lens' PermissionsListResponse [Permission]

-- | The processing status of this table.
data TableProcessingStatus

-- | <pre>
--   complete
--   </pre>
TPSComplete :: TableProcessingStatus

-- | <pre>
--   failed
--   </pre>
TPSFailed :: TableProcessingStatus

-- | <pre>
--   notReady
--   </pre>
TPSNotReady :: TableProcessingStatus

-- | <pre>
--   processing
--   </pre>
TPSProcessing :: TableProcessingStatus

-- | <pre>
--   ready
--   </pre>
TPSReady :: TableProcessingStatus

-- | Style for lines.
--   
--   <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>lsStroke</a></li>
--   <li><a>lsBOrder</a></li>
--   <li><a>lsDash</a></li>
--   <li><a>lsLabel</a></li>
--   </ul>
lineStyle :: LineStyle

-- | Stroke of the line.
lsStroke :: Lens' LineStyle (Maybe LineStyleStroke)

-- | Border of the line. 0 &lt; border.width &lt;= 5.
lsBOrder :: Lens' LineStyle (Maybe BOrder)

-- | Dash defines the pattern of the line, the values are pixel lengths of
--   alternating dash and gap. If dash is not provided, then it means a
--   solid line. Dash can contain up to 10 values and must contain even
--   number of values.
lsDash :: Lens' LineStyle [Double]

-- | Label style for the line.
lsLabel :: Lens' LineStyle (Maybe LabelStyle)

-- | The response returned by a call to layers.List.published.
--   
--   <i>See:</i> <a>publishedLayersListResponse</a> smart constructor.
data PublishedLayersListResponse

-- | Creates a value of <a>PublishedLayersListResponse</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>pllrNextPageToken</a></li>
--   <li><a>pllrLayers</a></li>
--   </ul>
publishedLayersListResponse :: PublishedLayersListResponse

-- | Next page token.
pllrNextPageToken :: Lens' PublishedLayersListResponse (Maybe ByteString)

-- | Resources returned.
pllrLayers :: Lens' PublishedLayersListResponse [PublishedLayer]
