<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.assets.html">assets</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="mapsengine_v1.assets.parents.html">parents()</a></code>
</p>
<p class="firstline">Returns the parents Resource.</p>

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

<p class="toc_element">
  <code><a href="#get">get(id)</a></code></p>
<p class="firstline">Return metadata for a particular asset.</p>
<p class="toc_element">
  <code><a href="#list">list(modifiedBefore=None, creatorEmail=None, projectId=None, pageToken=None, role=None, type=None, createdAfter=None, tags=None, maxResults=None, bbox=None, modifiedAfter=None, search=None, createdBefore=None)</a></code></p>
<p class="firstline">Return all assets readable by the current user.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(id)</code>
  <pre>Return metadata for a particular asset.

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

Returns:
  An object of the form:

    { # 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.
    "resource": "A String", # The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource.
    "description": "A String", # The asset's description.
    "tags": [ # 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.
      "A String",
    ],
    "projectId": "A String", # The ID of the project to which the asset belongs.
    "creationTime": "A String", # The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
    "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 asset. This is only returned on GET requests and not LIST requests.
    "bbox": [ # 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.
      3.14,
    ],
    "lastModifierEmail": "A String", # The email address of the last modifier of this asset. This is only returned on GET requests and not LIST requests.
    "lastModifiedTime": "A String", # The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
    "type": "A String", # The type of asset. One of raster, rasterCollection, table, map, or layer.
    "id": "A String", # The asset's globally unique ID.
    "name": "A String", # The asset's name.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(modifiedBefore=None, creatorEmail=None, projectId=None, pageToken=None, role=None, type=None, createdAfter=None, tags=None, maxResults=None, bbox=None, modifiedAfter=None, search=None, createdBefore=None)</code>
  <pre>Return all assets 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.
  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.
  type: string, 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'.
  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 resources.List.
    "nextPageToken": "A String", # Next page token.
    "assets": [ # Assets returned.
      { # 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.
        "resource": "A String", # The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource.
        "description": "A String", # The asset's description.
        "tags": [ # 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.
          "A String",
        ],
        "projectId": "A String", # The ID of the project to which the asset belongs.
        "creationTime": "A String", # The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
        "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 asset. This is only returned on GET requests and not LIST requests.
        "bbox": [ # 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.
          3.14,
        ],
        "lastModifierEmail": "A String", # The email address of the last modifier of this asset. This is only returned on GET requests and not LIST requests.
        "lastModifiedTime": "A String", # The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
        "type": "A String", # The type of asset. One of raster, rasterCollection, table, map, or layer.
        "id": "A String", # The asset's globally unique ID.
        "name": "A String", # The asset's name.
      },
    ],
  }</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>

</body></html>