<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="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.environments.html">environments</a> . <a href="apigee_v1.organizations.environments.analytics.html">analytics</a> . <a href="apigee_v1.organizations.environments.analytics.admin.html">admin</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="#getSchemav2">getSchemav2(name, type=None, x__xgafv=None)</a></code></p>
<p class="firstline">Get a list of metrics and dimensions which can be used for creating analytics queries and reports. Each schema element contains the name of the field with its associated type and if it is either custom field or standard field.</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="getSchemav2">getSchemav2(name, type=None, x__xgafv=None)</code>
  <pre>Get a list of metrics and dimensions which can be used for creating analytics queries and reports. Each schema element contains the name of the field with its associated type and if it is either custom field or standard field.

Args:
  name: string, Required. The parent organization and environment names. Must be of the form `organizations/{org}/environments/{env}/analytics/admin/schemav2`. (required)
  type: string, Required. Type refers to the dataset name whose schema needs to be retrieved E.g. type=fact or type=agg_cus1
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for Schema call
  &quot;dimensions&quot;: [ # List of schema fiels grouped as dimensions.
    { # Message type for the schema element
      &quot;name&quot;: &quot;A String&quot;, # Name of the field
      &quot;properties&quot;: { # Message type for schema property # Property of the schema field E.g. { &quot;createTime&quot;: &quot;2016-02-26T10:23:09.592Z&quot;, &quot;custom&quot;: &quot;false&quot;, &quot;type&quot;: &quot;string&quot; }
        &quot;createTime&quot;: &quot;A String&quot;, # Creation time of the field
        &quot;custom&quot;: &quot;A String&quot;, # Custom is a flag signifying if the field was provided as part of the standard dataset or a custom field created by the customer
        &quot;type&quot;: &quot;A String&quot;, # Data type of the field.
      },
    },
  ],
  &quot;meta&quot;: [ # Additional metadata associated with schema. This is a legacy field and usually consists of an empty array of strings.
    &quot;A String&quot;,
  ],
  &quot;metrics&quot;: [ # List of schema fields grouped as dimensions. These are fields that can be used with an aggregate function such as sum, avg, min, max.
    { # Message type for the schema element
      &quot;name&quot;: &quot;A String&quot;, # Name of the field
      &quot;properties&quot;: { # Message type for schema property # Property of the schema field E.g. { &quot;createTime&quot;: &quot;2016-02-26T10:23:09.592Z&quot;, &quot;custom&quot;: &quot;false&quot;, &quot;type&quot;: &quot;string&quot; }
        &quot;createTime&quot;: &quot;A String&quot;, # Creation time of the field
        &quot;custom&quot;: &quot;A String&quot;, # Custom is a flag signifying if the field was provided as part of the standard dataset or a custom field created by the customer
        &quot;type&quot;: &quot;A String&quot;, # Data type of the field.
      },
    },
  ],
}</pre>
</div>

</body></html>