<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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.provisioning.html">provisioning</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="#createAccountTicket">createAccountTicket(body=None)</a></code></p>
<p class="firstline">Creates an account ticket.</p>
<p class="toc_element">
  <code><a href="#createAccountTree">createAccountTree(body=None)</a></code></p>
<p class="firstline">Provision account.</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="createAccountTicket">createAccountTicket(body=None)</code>
  <pre>Creates an account ticket.

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

{ # JSON template for an Analytics account ticket. The account ticket consists of the ticket ID and the basic information for the account, property and profile.
    &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
    },
    &quot;account&quot;: { # JSON template for Analytics account entry. # Account for this ticket.
      &quot;name&quot;: &quot;A String&quot;, # Account name.
      &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
      &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
      &quot;id&quot;: &quot;A String&quot;, # Account ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
      &quot;permissions&quot;: { # Permissions the user has for this account.
        &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          &quot;A String&quot;,
        ],
      },
      &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
        &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
    },
    &quot;redirectUri&quot;: &quot;A String&quot;, # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
    &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
        &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
        &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
        &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
        &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
          &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
        },
        &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
          &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
        },
        &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
        &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
            # Set to false to delete data associated with the user identifier automatically after the rentention period.
            # This property cannot be set on insert.
        &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
        &quot;permissions&quot;: { # Permissions the user has for this web property.
          &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
            &quot;A String&quot;,
          ],
        },
        &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
        &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
        &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
        &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
        &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
        &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
      },
    &quot;kind&quot;: &quot;analytics#accountTicket&quot;, # Resource type for account ticket.
    &quot;id&quot;: &quot;A String&quot;, # Account ticket ID used to access the account ticket.
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics account ticket. The account ticket consists of the ticket ID and the basic information for the account, property and profile.
      &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
        &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
        &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
          &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
        },
        &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
        &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
        &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
        &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
            # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
        &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
          &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
        },
        &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
        &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
        &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
        &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
        &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
        &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
        &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
        &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
        &quot;permissions&quot;: { # Permissions the user has for this view (profile).
          &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
            &quot;A String&quot;,
          ],
        },
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
        &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
        &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
        &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
        &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
        &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
        &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      },
      &quot;account&quot;: { # JSON template for Analytics account entry. # Account for this ticket.
        &quot;name&quot;: &quot;A String&quot;, # Account name.
        &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
        &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
        &quot;id&quot;: &quot;A String&quot;, # Account ID.
        &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
        &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
        &quot;permissions&quot;: { # Permissions the user has for this account.
          &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
            &quot;A String&quot;,
          ],
        },
        &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
          &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
        },
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
      },
      &quot;redirectUri&quot;: &quot;A String&quot;, # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
      &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
          &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
          &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
          &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
          &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
            &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
          },
          &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
            &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
          },
          &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
          &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
              # Set to false to delete data associated with the user identifier automatically after the rentention period.
              # This property cannot be set on insert.
          &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
          &quot;permissions&quot;: { # Permissions the user has for this web property.
            &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
              &quot;A String&quot;,
            ],
          },
          &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
          &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
          &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
          &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
              # This property cannot be set on insert.
          &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
          &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
          &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
          &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
          &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
          &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
        },
      &quot;kind&quot;: &quot;analytics#accountTicket&quot;, # Resource type for account ticket.
      &quot;id&quot;: &quot;A String&quot;, # Account ticket ID used to access the account ticket.
    }</pre>
</div>

<div class="method">
    <code class="details" id="createAccountTree">createAccountTree(body=None)</code>
  <pre>Provision account.

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

{ # JSON template for an Analytics account tree requests. The account tree request is used in the provisioning api to create an account, property, and view (profile). It contains the basic information required to make these fields.
    &quot;websiteUrl&quot;: &quot;A String&quot;,
    &quot;kind&quot;: &quot;analytics#accountTreeRequest&quot;, # Resource type for account ticket.
    &quot;accountName&quot;: &quot;A String&quot;,
    &quot;webpropertyName&quot;: &quot;A String&quot;,
    &quot;profileName&quot;: &quot;A String&quot;,
    &quot;timezone&quot;: &quot;A String&quot;,
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics account tree response. The account tree response is used in the provisioning api to return the result of creating an account, property, and view (profile).
    &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
        &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
        &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
        &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
        &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
          &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
        },
        &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
          &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
        },
        &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
        &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
            # Set to false to delete data associated with the user identifier automatically after the rentention period.
            # This property cannot be set on insert.
        &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
        &quot;permissions&quot;: { # Permissions the user has for this web property.
          &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
            &quot;A String&quot;,
          ],
        },
        &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
        &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
        &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
        &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
        &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
        &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
      },
    &quot;kind&quot;: &quot;analytics#accountTreeResponse&quot;, # Resource type for account ticket.
    &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
    },
    &quot;account&quot;: { # JSON template for Analytics account entry. # The account created.
      &quot;name&quot;: &quot;A String&quot;, # Account name.
      &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
      &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
      &quot;id&quot;: &quot;A String&quot;, # Account ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
      &quot;permissions&quot;: { # Permissions the user has for this account.
        &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          &quot;A String&quot;,
        ],
      },
      &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
        &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
    },
  }</pre>
</div>

</body></html>