<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.layers.html">layers</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="mapsengine_v1.layers.parents.html">parents()</a></code>
</p>
<p class="firstline">Returns the parents Resource.</p>

<p class="toc_element">
  <code><a href="mapsengine_v1.layers.permissions.html">permissions()</a></code>
</p>
<p class="firstline">Returns the permissions Resource.</p>

<p class="toc_element">
  <code><a href="#cancelProcessing">cancelProcessing(id)</a></code></p>
<p class="firstline">Cancel processing on a layer asset.</p>
<p class="toc_element">
  <code><a href="#create">create(body, process=None)</a></code></p>
<p class="firstline">Create a layer asset.</p>
<p class="toc_element">
  <code><a href="#delete">delete(id)</a></code></p>
<p class="firstline">Delete a layer.</p>
<p class="toc_element">
  <code><a href="#get">get(id, version=None)</a></code></p>
<p class="firstline">Return metadata for a particular layer.</p>
<p class="toc_element">
  <code><a href="#getPublished">getPublished(id)</a></code></p>
<p class="firstline">Return the published metadata for a particular layer.</p>
<p class="toc_element">
  <code><a href="#list">list(modifiedBefore=None, creatorEmail=None, processingStatus=None, projectId=None, pageToken=None, role=None, createdAfter=None, tags=None, maxResults=None, bbox=None, modifiedAfter=None, search=None, createdBefore=None)</a></code></p>
<p class="firstline">Return all layers readable by the current user.</p>
<p class="toc_element">
  <code><a href="#listPublished">listPublished(pageToken=None, maxResults=None, projectId=None)</a></code></p>
<p class="firstline">Return all published layers readable by the current user.</p>
<p class="toc_element">
  <code><a href="#listPublished_next">listPublished_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(id, body)</a></code></p>
<p class="firstline">Mutate a layer asset.</p>
<p class="toc_element">
  <code><a href="#process">process(id)</a></code></p>
<p class="firstline">Process a layer asset.</p>
<p class="toc_element">
  <code><a href="#publish">publish(id, force=None)</a></code></p>
<p class="firstline">Publish a layer asset.</p>
<p class="toc_element">
  <code><a href="#unpublish">unpublish(id)</a></code></p>
<p class="firstline">Unpublish a layer asset.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="cancelProcessing">cancelProcessing(id)</code>
  <pre>Cancel processing on a layer asset.

Args:
  id: string, The ID of the layer. (required)

Returns:
  An object of the form:

    { # The response returned by a call to any asset's Process method.
  }</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body, process=None)</code>
  <pre>Create a layer asset.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # A Layer combines multiple datasources, with styling information, for presentation on a map.
  "style": { # A vector style contains styling information for vector layer. # 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.
    "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
      "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
    },
    "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
    "displayRules": [
      { # A display rule of the vector style.
        "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
          "label": { # Text label style. # Label style for the point.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
          "icon": { # Style for icon, this is part of point style. # Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.
            "scalingFunction": { # Parameters for scaling scaled shapes. # The function used to scale shapes. Required when a scaledShape is specified.
              "column": "A String", # Name of the numeric column used to scale a shape.
              "valueRange": { # Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size. # The range of values to display across the size range.
                "max": 3.14, # Maximum value.
                "min": 3.14, # Minimum value.
              },
              "sizeRange": { # Scaled shape size range in pixels. For circles, size corresponds to diameter. # The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.
                "max": 3.14, # Maximum size, in pixels.
                "min": 3.14, # Minimum size, in pixels.
              },
              "scalingType": "A String", # The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.
            },
            "id": "A String", # Custom icon id.
            "scaledShape": { # Parameters for styling points as scaled shapes. # A scalable shape.
              "shape": "A String", # Name of the shape.
              "border": { # Border in line style. Both color and width are required. # Border color/width of the shape. If not specified the shape won't have a border.
                "color": "A String", # Color of the border.
                "opacity": 3.14, # Opacity of the border.
                "width": 3.14, # Width of the border, in pixels.
              },
              "fill": { # Basic color used in styling. # The fill color of the shape. If not specified the shape will be transparent (although the borders may not be).
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
            },
            "name": "A String", # 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'.
          },
        },
        "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
        "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
          "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
            "color": "A String", # Color of the border.
            "opacity": 3.14, # Opacity of the border.
            "width": 3.14, # Width of the border, in pixels.
          },
          "label": { # Text label style. # Label style for the polygon.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
          "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
            "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
            "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
          },
        },
        "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
          "dash": [ # 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.
            3.14,
          ],
          "stroke": { # Stroke of the line.
            "color": "A String", # Color of the line.
            "opacity": 3.14, # Opacity of the line.
            "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
          },
          "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
            "color": "A String", # Color of the border.
            "opacity": 3.14, # Opacity of the border.
            "width": 3.14, # Width of the border, in pixels.
          },
          "label": { # Text label style. # Label style for the line.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
        },
        "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
          "max": 42, # Maximum zoom level.
          "min": 42, # Minimum zoom level.
        },
        "filters": [ # 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.
          { # Conditions for filtering features.
            "column": "A String", # The column name to filter on.
            "operator": "A String", # Operation used to evaluate the filter.
            "value": "", # Value to be evaluated against attribute.
          },
        ],
      },
    ],
  },
  "datasources": [ # 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.
    {
      "id": "A String", # The ID of a datasource.
    },
  ],
  "processingStatus": "A String", # The processing status of this layer.
  "draftAccessList": "A String", # 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.
  "datasourceType": "A String", # 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.
  "tags": [ # Tags of this Layer.
    "A String",
  ],
  "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
  "publishingStatus": "A String", # The publishing status of this layer.
  "name": "A String", # The name of this Layer, supplied by the author.
  "writersCanEditPermissions": True or False, # If true, WRITERs of the asset are able to edit the asset permissions.
  "etag": "A String", # The ETag, used to refer to the current version of the asset.
  "creatorEmail": "A String", # The email address of the creator of this layer. This is only returned on GET requests and not LIST requests.
  "bbox": [ # 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.
    3.14,
  ],
  "layerType": "A String", # 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.
  "projectId": "A String", # The ID of the project that this Layer is in.
  "lastModifierEmail": "A String", # The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests.
  "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
  "publishedAccessList": "A String", # 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.
  "id": "A String", # A globally unique ID, used to refer to this Layer.
  "description": "A String", # The description of this Layer, supplied by the author.
}

  process: boolean, Whether to queue the created layer for processing.

Returns:
  An object of the form:

    { # A Layer combines multiple datasources, with styling information, for presentation on a map.
    "style": { # A vector style contains styling information for vector layer. # 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.
      "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
        "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
      },
      "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
      "displayRules": [
        { # A display rule of the vector style.
          "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
            "label": { # Text label style. # Label style for the point.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
            "icon": { # Style for icon, this is part of point style. # Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.
              "scalingFunction": { # Parameters for scaling scaled shapes. # The function used to scale shapes. Required when a scaledShape is specified.
                "column": "A String", # Name of the numeric column used to scale a shape.
                "valueRange": { # Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size. # The range of values to display across the size range.
                  "max": 3.14, # Maximum value.
                  "min": 3.14, # Minimum value.
                },
                "sizeRange": { # Scaled shape size range in pixels. For circles, size corresponds to diameter. # The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.
                  "max": 3.14, # Maximum size, in pixels.
                  "min": 3.14, # Minimum size, in pixels.
                },
                "scalingType": "A String", # The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.
              },
              "id": "A String", # Custom icon id.
              "scaledShape": { # Parameters for styling points as scaled shapes. # A scalable shape.
                "shape": "A String", # Name of the shape.
                "border": { # Border in line style. Both color and width are required. # Border color/width of the shape. If not specified the shape won't have a border.
                  "color": "A String", # Color of the border.
                  "opacity": 3.14, # Opacity of the border.
                  "width": 3.14, # Width of the border, in pixels.
                },
                "fill": { # Basic color used in styling. # The fill color of the shape. If not specified the shape will be transparent (although the borders may not be).
                  "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                  "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                },
              },
              "name": "A String", # 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'.
            },
          },
          "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
          "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
            "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
              "color": "A String", # Color of the border.
              "opacity": 3.14, # Opacity of the border.
              "width": 3.14, # Width of the border, in pixels.
            },
            "label": { # Text label style. # Label style for the polygon.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
            "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
          },
          "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
            "dash": [ # 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.
              3.14,
            ],
            "stroke": { # Stroke of the line.
              "color": "A String", # Color of the line.
              "opacity": 3.14, # Opacity of the line.
              "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
            },
            "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
              "color": "A String", # Color of the border.
              "opacity": 3.14, # Opacity of the border.
              "width": 3.14, # Width of the border, in pixels.
            },
            "label": { # Text label style. # Label style for the line.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
          },
          "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
            "max": 42, # Maximum zoom level.
            "min": 42, # Minimum zoom level.
          },
          "filters": [ # 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.
            { # Conditions for filtering features.
              "column": "A String", # The column name to filter on.
              "operator": "A String", # Operation used to evaluate the filter.
              "value": "", # Value to be evaluated against attribute.
            },
          ],
        },
      ],
    },
    "datasources": [ # 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.
      {
        "id": "A String", # The ID of a datasource.
      },
    ],
    "processingStatus": "A String", # The processing status of this layer.
    "draftAccessList": "A String", # 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.
    "datasourceType": "A String", # 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.
    "tags": [ # Tags of this Layer.
      "A String",
    ],
    "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
    "publishingStatus": "A String", # The publishing status of this layer.
    "name": "A String", # The name of this Layer, supplied by the author.
    "writersCanEditPermissions": True or False, # If true, WRITERs of the asset are able to edit the asset permissions.
    "etag": "A String", # The ETag, used to refer to the current version of the asset.
    "creatorEmail": "A String", # The email address of the creator of this layer. This is only returned on GET requests and not LIST requests.
    "bbox": [ # 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.
      3.14,
    ],
    "layerType": "A String", # 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.
    "projectId": "A String", # The ID of the project that this Layer is in.
    "lastModifierEmail": "A String", # The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests.
    "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
    "publishedAccessList": "A String", # 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.
    "id": "A String", # A globally unique ID, used to refer to this Layer.
    "description": "A String", # The description of this Layer, supplied by the author.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(id)</code>
  <pre>Delete a layer.

Args:
  id: string, 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. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(id, version=None)</code>
  <pre>Return metadata for a particular layer.

Args:
  id: string, The ID of the layer. (required)
  version: string, 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.
    Allowed values
      draft - The draft version.
      published - The published version.

Returns:
  An object of the form:

    { # A Layer combines multiple datasources, with styling information, for presentation on a map.
    "style": { # A vector style contains styling information for vector layer. # 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.
      "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
        "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
      },
      "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
      "displayRules": [
        { # A display rule of the vector style.
          "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
            "label": { # Text label style. # Label style for the point.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
            "icon": { # Style for icon, this is part of point style. # Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.
              "scalingFunction": { # Parameters for scaling scaled shapes. # The function used to scale shapes. Required when a scaledShape is specified.
                "column": "A String", # Name of the numeric column used to scale a shape.
                "valueRange": { # Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size. # The range of values to display across the size range.
                  "max": 3.14, # Maximum value.
                  "min": 3.14, # Minimum value.
                },
                "sizeRange": { # Scaled shape size range in pixels. For circles, size corresponds to diameter. # The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.
                  "max": 3.14, # Maximum size, in pixels.
                  "min": 3.14, # Minimum size, in pixels.
                },
                "scalingType": "A String", # The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.
              },
              "id": "A String", # Custom icon id.
              "scaledShape": { # Parameters for styling points as scaled shapes. # A scalable shape.
                "shape": "A String", # Name of the shape.
                "border": { # Border in line style. Both color and width are required. # Border color/width of the shape. If not specified the shape won't have a border.
                  "color": "A String", # Color of the border.
                  "opacity": 3.14, # Opacity of the border.
                  "width": 3.14, # Width of the border, in pixels.
                },
                "fill": { # Basic color used in styling. # The fill color of the shape. If not specified the shape will be transparent (although the borders may not be).
                  "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                  "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                },
              },
              "name": "A String", # 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'.
            },
          },
          "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
          "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
            "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
              "color": "A String", # Color of the border.
              "opacity": 3.14, # Opacity of the border.
              "width": 3.14, # Width of the border, in pixels.
            },
            "label": { # Text label style. # Label style for the polygon.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
            "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
          },
          "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
            "dash": [ # 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.
              3.14,
            ],
            "stroke": { # Stroke of the line.
              "color": "A String", # Color of the line.
              "opacity": 3.14, # Opacity of the line.
              "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
            },
            "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
              "color": "A String", # Color of the border.
              "opacity": 3.14, # Opacity of the border.
              "width": 3.14, # Width of the border, in pixels.
            },
            "label": { # Text label style. # Label style for the line.
              "opacity": 3.14, # Opacity of the text.
              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
              "outline": { # Basic color used in styling. # Outline color of the text.
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
              "color": "A String", # Color of the text. If not provided, default to black.
              "column": "A String", # The column value of the feature to be displayed.
              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
            },
          },
          "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
            "max": 42, # Maximum zoom level.
            "min": 42, # Minimum zoom level.
          },
          "filters": [ # 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.
            { # Conditions for filtering features.
              "column": "A String", # The column name to filter on.
              "operator": "A String", # Operation used to evaluate the filter.
              "value": "", # Value to be evaluated against attribute.
            },
          ],
        },
      ],
    },
    "datasources": [ # 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.
      {
        "id": "A String", # The ID of a datasource.
      },
    ],
    "processingStatus": "A String", # The processing status of this layer.
    "draftAccessList": "A String", # 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.
    "datasourceType": "A String", # 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.
    "tags": [ # Tags of this Layer.
      "A String",
    ],
    "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
    "publishingStatus": "A String", # The publishing status of this layer.
    "name": "A String", # The name of this Layer, supplied by the author.
    "writersCanEditPermissions": True or False, # If true, WRITERs of the asset are able to edit the asset permissions.
    "etag": "A String", # The ETag, used to refer to the current version of the asset.
    "creatorEmail": "A String", # The email address of the creator of this layer. This is only returned on GET requests and not LIST requests.
    "bbox": [ # 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.
      3.14,
    ],
    "layerType": "A String", # 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.
    "projectId": "A String", # The ID of the project that this Layer is in.
    "lastModifierEmail": "A String", # The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests.
    "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
    "publishedAccessList": "A String", # 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.
    "id": "A String", # A globally unique ID, used to refer to this Layer.
    "description": "A String", # The description of this Layer, supplied by the author.
  }</pre>
</div>

<div class="method">
    <code class="details" id="getPublished">getPublished(id)</code>
  <pre>Return the published metadata for a particular layer.

Args:
  id: string, The ID of the layer. (required)

Returns:
  An object of the form:

    { # The published version of a layer.
    "projectId": "A String", # The ID of the project that this Layer is in.
    "name": "A String", # The name of this Layer, supplied by the author.
    "description": "A String", # The description of this Layer, supplied by the author.
    "layerType": "A String", # 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.
    "id": "A String", # A globally unique ID, used to refer to this Layer.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(modifiedBefore=None, creatorEmail=None, processingStatus=None, projectId=None, pageToken=None, role=None, createdAfter=None, tags=None, maxResults=None, bbox=None, modifiedAfter=None, search=None, createdBefore=None)</code>
  <pre>Return all layers readable by the current user.

Args:
  modifiedBefore: string, 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.
  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
  processingStatus: string, A parameter
    Allowed values
      complete - The layer has completed processing.
      failed - The layer has failed processing.
      notReady - The layer is not ready for processing.
      processing - The layer is processing.
      ready - The layer is ready for processing.
  projectId: string, 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.
  pageToken: string, 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.
  role: string, The role parameter indicates that the response should only contain assets where the current user has the specified level of access.
    Allowed values
      owner - The user can read, write and administer the asset.
      reader - The user can read the asset.
      writer - The user can read and write the asset.
  createdAfter: string, 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.
  tags: string, A comma separated list of tags. Returned assets will contain all the tags from the list.
  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
  modifiedAfter: string, 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.
  search: string, An unstructured search string used to filter the set of results based on asset metadata.
  createdBefore: string, 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.

Returns:
  An object of the form:

    { # 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.
    "layers": [ # Resources returned.
      { # A Layer combines multiple datasources, with styling information, for presentation on a map.
        "style": { # A vector style contains styling information for vector layer. # 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.
          "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
            "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
          },
          "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
          "displayRules": [
            { # A display rule of the vector style.
              "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
                "label": { # Text label style. # Label style for the point.
                  "opacity": 3.14, # Opacity of the text.
                  "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
                  "outline": { # Basic color used in styling. # Outline color of the text.
                    "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                    "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                  },
                  "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
                  "color": "A String", # Color of the text. If not provided, default to black.
                  "column": "A String", # The column value of the feature to be displayed.
                  "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
                },
                "icon": { # Style for icon, this is part of point style. # Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.
                  "scalingFunction": { # Parameters for scaling scaled shapes. # The function used to scale shapes. Required when a scaledShape is specified.
                    "column": "A String", # Name of the numeric column used to scale a shape.
                    "valueRange": { # Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size. # The range of values to display across the size range.
                      "max": 3.14, # Maximum value.
                      "min": 3.14, # Minimum value.
                    },
                    "sizeRange": { # Scaled shape size range in pixels. For circles, size corresponds to diameter. # The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.
                      "max": 3.14, # Maximum size, in pixels.
                      "min": 3.14, # Minimum size, in pixels.
                    },
                    "scalingType": "A String", # The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.
                  },
                  "id": "A String", # Custom icon id.
                  "scaledShape": { # Parameters for styling points as scaled shapes. # A scalable shape.
                    "shape": "A String", # Name of the shape.
                    "border": { # Border in line style. Both color and width are required. # Border color/width of the shape. If not specified the shape won't have a border.
                      "color": "A String", # Color of the border.
                      "opacity": 3.14, # Opacity of the border.
                      "width": 3.14, # Width of the border, in pixels.
                    },
                    "fill": { # Basic color used in styling. # The fill color of the shape. If not specified the shape will be transparent (although the borders may not be).
                      "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                      "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                    },
                  },
                  "name": "A String", # 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'.
                },
              },
              "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
              "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
                "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
                  "color": "A String", # Color of the border.
                  "opacity": 3.14, # Opacity of the border.
                  "width": 3.14, # Width of the border, in pixels.
                },
                "label": { # Text label style. # Label style for the polygon.
                  "opacity": 3.14, # Opacity of the text.
                  "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
                  "outline": { # Basic color used in styling. # Outline color of the text.
                    "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                    "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                  },
                  "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
                  "color": "A String", # Color of the text. If not provided, default to black.
                  "column": "A String", # The column value of the feature to be displayed.
                  "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
                },
                "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
                  "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                  "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                },
              },
              "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
                "dash": [ # 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.
                  3.14,
                ],
                "stroke": { # Stroke of the line.
                  "color": "A String", # Color of the line.
                  "opacity": 3.14, # Opacity of the line.
                  "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
                },
                "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
                  "color": "A String", # Color of the border.
                  "opacity": 3.14, # Opacity of the border.
                  "width": 3.14, # Width of the border, in pixels.
                },
                "label": { # Text label style. # Label style for the line.
                  "opacity": 3.14, # Opacity of the text.
                  "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
                  "outline": { # Basic color used in styling. # Outline color of the text.
                    "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                    "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
                  },
                  "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
                  "color": "A String", # Color of the text. If not provided, default to black.
                  "column": "A String", # The column value of the feature to be displayed.
                  "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
                },
              },
              "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
                "max": 42, # Maximum zoom level.
                "min": 42, # Minimum zoom level.
              },
              "filters": [ # 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.
                { # Conditions for filtering features.
                  "column": "A String", # The column name to filter on.
                  "operator": "A String", # Operation used to evaluate the filter.
                  "value": "", # Value to be evaluated against attribute.
                },
              ],
            },
          ],
        },
        "datasources": [ # 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.
          {
            "id": "A String", # The ID of a datasource.
          },
        ],
        "processingStatus": "A String", # The processing status of this layer.
        "draftAccessList": "A String", # 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.
        "datasourceType": "A String", # 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.
        "tags": [ # Tags of this Layer.
          "A String",
        ],
        "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
        "publishingStatus": "A String", # The publishing status of this layer.
        "name": "A String", # The name of this Layer, supplied by the author.
        "writersCanEditPermissions": True or False, # If true, WRITERs of the asset are able to edit the asset permissions.
        "etag": "A String", # The ETag, used to refer to the current version of the asset.
        "creatorEmail": "A String", # The email address of the creator of this layer. This is only returned on GET requests and not LIST requests.
        "bbox": [ # 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.
          3.14,
        ],
        "layerType": "A String", # 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.
        "projectId": "A String", # The ID of the project that this Layer is in.
        "lastModifierEmail": "A String", # The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests.
        "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
        "publishedAccessList": "A String", # 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.
        "id": "A String", # A globally unique ID, used to refer to this Layer.
        "description": "A String", # The description of this Layer, supplied by the author.
      },
    ],
    "nextPageToken": "A String", # Next page token.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listPublished">listPublished(pageToken=None, maxResults=None, projectId=None)</code>
  <pre>Return all published layers readable by the current user.

Args:
  pageToken: string, 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.
  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
  projectId: string, 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.

Returns:
  An object of the form:

    { # The response returned by a call to layers.List.published.
    "layers": [ # Resources returned.
      { # The published version of a layer.
        "projectId": "A String", # The ID of the project that this Layer is in.
        "name": "A String", # The name of this Layer, supplied by the author.
        "description": "A String", # The description of this Layer, supplied by the author.
        "layerType": "A String", # 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.
        "id": "A String", # A globally unique ID, used to refer to this Layer.
      },
    ],
    "nextPageToken": "A String", # Next page token.
  }</pre>
</div>

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

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

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

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

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

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

<div class="method">
    <code class="details" id="patch">patch(id, body)</code>
  <pre>Mutate a layer asset.

Args:
  id: string, The ID of the layer. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A Layer combines multiple datasources, with styling information, for presentation on a map.
  "style": { # A vector style contains styling information for vector layer. # 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.
    "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
      "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
    },
    "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
    "displayRules": [
      { # A display rule of the vector style.
        "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
          "label": { # Text label style. # Label style for the point.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
          "icon": { # Style for icon, this is part of point style. # Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.
            "scalingFunction": { # Parameters for scaling scaled shapes. # The function used to scale shapes. Required when a scaledShape is specified.
              "column": "A String", # Name of the numeric column used to scale a shape.
              "valueRange": { # Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size. # The range of values to display across the size range.
                "max": 3.14, # Maximum value.
                "min": 3.14, # Minimum value.
              },
              "sizeRange": { # Scaled shape size range in pixels. For circles, size corresponds to diameter. # The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.
                "max": 3.14, # Maximum size, in pixels.
                "min": 3.14, # Minimum size, in pixels.
              },
              "scalingType": "A String", # The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.
            },
            "id": "A String", # Custom icon id.
            "scaledShape": { # Parameters for styling points as scaled shapes. # A scalable shape.
              "shape": "A String", # Name of the shape.
              "border": { # Border in line style. Both color and width are required. # Border color/width of the shape. If not specified the shape won't have a border.
                "color": "A String", # Color of the border.
                "opacity": 3.14, # Opacity of the border.
                "width": 3.14, # Width of the border, in pixels.
              },
              "fill": { # Basic color used in styling. # The fill color of the shape. If not specified the shape will be transparent (although the borders may not be).
                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
              },
            },
            "name": "A String", # 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'.
          },
        },
        "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
        "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
          "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
            "color": "A String", # Color of the border.
            "opacity": 3.14, # Opacity of the border.
            "width": 3.14, # Width of the border, in pixels.
          },
          "label": { # Text label style. # Label style for the polygon.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
          "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
            "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
            "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
          },
        },
        "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
          "dash": [ # 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.
            3.14,
          ],
          "stroke": { # Stroke of the line.
            "color": "A String", # Color of the line.
            "opacity": 3.14, # Opacity of the line.
            "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
          },
          "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
            "color": "A String", # Color of the border.
            "opacity": 3.14, # Opacity of the border.
            "width": 3.14, # Width of the border, in pixels.
          },
          "label": { # Text label style. # Label style for the line.
            "opacity": 3.14, # Opacity of the text.
            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
            "outline": { # Basic color used in styling. # Outline color of the text.
              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
            },
            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
            "color": "A String", # Color of the text. If not provided, default to black.
            "column": "A String", # The column value of the feature to be displayed.
            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
          },
        },
        "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
          "max": 42, # Maximum zoom level.
          "min": 42, # Minimum zoom level.
        },
        "filters": [ # 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.
          { # Conditions for filtering features.
            "column": "A String", # The column name to filter on.
            "operator": "A String", # Operation used to evaluate the filter.
            "value": "", # Value to be evaluated against attribute.
          },
        ],
      },
    ],
  },
  "datasources": [ # 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.
    {
      "id": "A String", # The ID of a datasource.
    },
  ],
  "processingStatus": "A String", # The processing status of this layer.
  "draftAccessList": "A String", # 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.
  "datasourceType": "A String", # 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.
  "tags": [ # Tags of this Layer.
    "A String",
  ],
  "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
  "publishingStatus": "A String", # The publishing status of this layer.
  "name": "A String", # The name of this Layer, supplied by the author.
  "writersCanEditPermissions": True or False, # If true, WRITERs of the asset are able to edit the asset permissions.
  "etag": "A String", # The ETag, used to refer to the current version of the asset.
  "creatorEmail": "A String", # The email address of the creator of this layer. This is only returned on GET requests and not LIST requests.
  "bbox": [ # 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.
    3.14,
  ],
  "layerType": "A String", # 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.
  "projectId": "A String", # The ID of the project that this Layer is in.
  "lastModifierEmail": "A String", # The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests.
  "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
  "publishedAccessList": "A String", # 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.
  "id": "A String", # A globally unique ID, used to refer to this Layer.
  "description": "A String", # The description of this Layer, supplied by the author.
}

</pre>
</div>

<div class="method">
    <code class="details" id="process">process(id)</code>
  <pre>Process a layer asset.

Args:
  id: string, The ID of the layer. (required)

Returns:
  An object of the form:

    { # The response returned by a call to any asset's Process method.
  }</pre>
</div>

<div class="method">
    <code class="details" id="publish">publish(id, force=None)</code>
  <pre>Publish a layer asset.

Args:
  id: string, The ID of the layer. (required)
  force: boolean, 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.

Returns:
  An object of the form:

    { # The response returned by a call to any asset's Publish method.
  }</pre>
</div>

<div class="method">
    <code class="details" id="unpublish">unpublish(id)</code>
  <pre>Unpublish a layer asset.

Args:
  id: string, The ID of the layer. (required)

Returns:
  An object of the form:

    { # The response returned by a call to any asset's Publish method.
  }</pre>
</div>

</body></html>