<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.templates.html">templates</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a GTM Custom Template.</p>
<p class="toc_element">
  <code><a href="#delete">delete(path, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a GTM Template.</p>
<p class="toc_element">
  <code><a href="#get">get(path, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a GTM Template.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all GTM Templates of a GTM container workspace.</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="#revert">revert(path, fingerprint=None, x__xgafv=None)</a></code></p>
<p class="firstline">Reverts changes to a GTM Template in a GTM Workspace.</p>
<p class="toc_element">
  <code><a href="#update">update(path, body=None, fingerprint=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a GTM Template.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a GTM Custom Template.

Args:
  parent: string, GTM Workspace&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents a Google Tag Manager Custom Template&#x27;s contents.
  &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
  &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
  &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
  &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
    &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
    &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
    &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
    &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
    &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
    &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
  },
  &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
  &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
  &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
  &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
  &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
  &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a Google Tag Manager Custom Template&#x27;s contents.
  &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
  &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
  &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
  &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
    &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
    &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
    &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
    &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
    &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
    &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
  },
  &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
  &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
  &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
  &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
  &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
  &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(path, x__xgafv=None)</code>
  <pre>Deletes a GTM Template.

Args:
  path: string, GTM Custom Template&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(path, x__xgafv=None)</code>
  <pre>Gets a GTM Template.

Args:
  path: string, GTM Custom Template&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a Google Tag Manager Custom Template&#x27;s contents.
  &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
  &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
  &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
  &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
    &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
    &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
    &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
    &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
    &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
    &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
  },
  &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
  &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
  &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
  &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
  &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
  &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None)</code>
  <pre>Lists all GTM Templates of a GTM container workspace.

Args:
  parent: string, GTM Workspace&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
  pageToken: string, Continuation token for fetching the next page of results.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Continuation token for fetching the next page of results.
  &quot;template&quot;: [ # All GTM Custom Templates of a GTM Container.
    { # Represents a Google Tag Manager Custom Template&#x27;s contents.
      &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
      &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
      &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
      &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
        &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
        &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
        &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
        &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
        &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
        &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
      },
      &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
      &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
      &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
      &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
      &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
      &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
    },
  ],
}</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 &#x27;execute()&#x27; 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="revert">revert(path, fingerprint=None, x__xgafv=None)</code>
  <pre>Reverts changes to a GTM Template in a GTM Workspace.

Args:
  path: string, GTM Custom Template&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id} (required)
  fingerprint: string, When provided, this fingerprint must match the fingerprint of the template in storage.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The result of reverting a template in a workspace.
  &quot;template&quot;: { # Represents a Google Tag Manager Custom Template&#x27;s contents. # Template as it appears in the latest container version since the last workspace synchronization operation. If no template is present, that means the template was deleted in the latest container version.
    &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
    &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
    &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
    &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
      &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
      &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
      &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
      &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
      &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
      &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
    },
    &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
    &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
    &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
    &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
    &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
    &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(path, body=None, fingerprint=None, x__xgafv=None)</code>
  <pre>Updates a GTM Template.

Args:
  path: string, GTM Custom Template&#x27;s API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/templates/{template_id} (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents a Google Tag Manager Custom Template&#x27;s contents.
  &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
  &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
  &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
  &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
    &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
    &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
    &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
    &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
    &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
    &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
  },
  &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
  &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
  &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
  &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
  &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
  &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
}

  fingerprint: string, When provided, this fingerprint must match the fingerprint of the templates in storage.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a Google Tag Manager Custom Template&#x27;s contents.
  &quot;accountId&quot;: &quot;A String&quot;, # GTM Account ID.
  &quot;containerId&quot;: &quot;A String&quot;, # GTM Container ID.
  &quot;fingerprint&quot;: &quot;A String&quot;, # The fingerprint of the GTM Custom Template as computed at storage time. This value is recomputed whenever the template is modified.
  &quot;galleryReference&quot;: { # Represents the link between a custom template and an entry on the Community Template Gallery site. # A reference to the Community Template Gallery entry.
    &quot;host&quot;: &quot;A String&quot;, # The name of the host for the community gallery template.
    &quot;isModified&quot;: True or False, # If a user has manually edited the community gallery template.
    &quot;owner&quot;: &quot;A String&quot;, # The name of the owner for the community gallery template.
    &quot;repository&quot;: &quot;A String&quot;, # The name of the repository for the community gallery template.
    &quot;signature&quot;: &quot;A String&quot;, # The signature of the community gallery template as computed at import time. This value is recomputed whenever the template is updated from the gallery.
    &quot;version&quot;: &quot;A String&quot;, # The version of the community gallery template.
  },
  &quot;name&quot;: &quot;A String&quot;, # Custom Template display name.
  &quot;path&quot;: &quot;A String&quot;, # GTM Custom Template&#x27;s API relative path.
  &quot;tagManagerUrl&quot;: &quot;A String&quot;, # Auto generated link to the tag manager UI
  &quot;templateData&quot;: &quot;A String&quot;, # The custom template in text format.
  &quot;templateId&quot;: &quot;A String&quot;, # The Custom Template ID uniquely identifies the GTM custom template.
  &quot;workspaceId&quot;: &quot;A String&quot;, # GTM Workspace ID.
}</pre>
</div>

</body></html>