<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.management.html">management</a> . <a href="analytics_v3.management.customDimensions.html">customDimensions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(accountId, webPropertyId, customDimensionId)</a></code></p>
<p class="firstline">Get a custom dimension to which the user has access.</p>
<p class="toc_element">
  <code><a href="#insert">insert(accountId, webPropertyId, body)</a></code></p>
<p class="firstline">Create a new custom dimension.</p>
<p class="toc_element">
  <code><a href="#list">list(accountId, webPropertyId, max_results=None, start_index=None)</a></code></p>
<p class="firstline">Lists custom dimensions to which the user has access.</p>
<p class="toc_element">
  <code><a href="#patch">patch(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
<p class="firstline">Updates an existing custom dimension. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
<p class="firstline">Updates an existing custom dimension.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(accountId, webPropertyId, customDimensionId)</code>
  <pre>Get a custom dimension to which the user has access.

Args:
  accountId: string, Account ID for the custom dimension to retrieve. (required)
  webPropertyId: string, Web property ID for the custom dimension to retrieve. (required)
  customDimensionId: string, The ID of the custom dimension to retrieve. (required)

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      "index": 42, # Index of the custom dimension.
      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
      "name": "A String", # Name of the custom dimension.
      "created": "A String", # Time the custom dimension was created.
      "updated": "A String", # Time the custom dimension was last modified.
      "webPropertyId": "A String", # Property ID.
      "active": True or False, # Boolean indicating whether the custom dimension is active.
      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        "href": "A String", # Link to the property to which the custom dimension belongs.
        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
      },
      "id": "A String", # Custom dimension ID.
      "selfLink": "A String", # Link for the custom dimension
      "accountId": "A String", # Account ID.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(accountId, webPropertyId, body)</code>
  <pre>Create a new custom dimension.

Args:
  accountId: string, Account ID for the custom dimension to create. (required)
  webPropertyId: string, Web property ID for the custom dimension to create. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for Analytics Custom Dimension.
    "index": 42, # Index of the custom dimension.
    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
    "name": "A String", # Name of the custom dimension.
    "created": "A String", # Time the custom dimension was created.
    "updated": "A String", # Time the custom dimension was last modified.
    "webPropertyId": "A String", # Property ID.
    "active": True or False, # Boolean indicating whether the custom dimension is active.
    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      "href": "A String", # Link to the property to which the custom dimension belongs.
      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
    },
    "id": "A String", # Custom dimension ID.
    "selfLink": "A String", # Link for the custom dimension
    "accountId": "A String", # Account ID.
  }


Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      "index": 42, # Index of the custom dimension.
      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
      "name": "A String", # Name of the custom dimension.
      "created": "A String", # Time the custom dimension was created.
      "updated": "A String", # Time the custom dimension was last modified.
      "webPropertyId": "A String", # Property ID.
      "active": True or False, # Boolean indicating whether the custom dimension is active.
      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        "href": "A String", # Link to the property to which the custom dimension belongs.
        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
      },
      "id": "A String", # Custom dimension ID.
      "selfLink": "A String", # Link for the custom dimension
      "accountId": "A String", # Account ID.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
  <pre>Lists custom dimensions to which the user has access.

Args:
  accountId: string, Account ID for the custom dimensions to retrieve. (required)
  webPropertyId: string, Web property ID for the custom dimensions to retrieve. (required)
  max_results: integer, The maximum number of custom dimensions to include in this response.
  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.

Returns:
  An object of the form:

    { # A custom dimension collection lists Analytics custom dimensions to which the user has access. Each resource in the collection corresponds to a single Analytics custom dimension.
    "username": "A String", # Email ID of the authenticated user
    "kind": "analytics#customDimensions", # Collection type.
    "items": [ # Collection of custom dimensions.
      { # JSON template for Analytics Custom Dimension.
          "index": 42, # Index of the custom dimension.
          "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
          "name": "A String", # Name of the custom dimension.
          "created": "A String", # Time the custom dimension was created.
          "updated": "A String", # Time the custom dimension was last modified.
          "webPropertyId": "A String", # Property ID.
          "active": True or False, # Boolean indicating whether the custom dimension is active.
          "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
          "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
            "href": "A String", # Link to the property to which the custom dimension belongs.
            "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
          },
          "id": "A String", # Custom dimension ID.
          "selfLink": "A String", # Link for the custom dimension
          "accountId": "A String", # Account ID.
        },
    ],
    "itemsPerPage": 42, # The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
    "previousLink": "A String", # Link to previous page for this custom dimension collection.
    "startIndex": 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
    "nextLink": "A String", # Link to next page for this custom dimension collection.
    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
  }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</code>
  <pre>Updates an existing custom dimension. This method supports patch semantics.

Args:
  accountId: string, Account ID for the custom dimension to update. (required)
  webPropertyId: string, Web property ID for the custom dimension to update. (required)
  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for Analytics Custom Dimension.
    "index": 42, # Index of the custom dimension.
    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
    "name": "A String", # Name of the custom dimension.
    "created": "A String", # Time the custom dimension was created.
    "updated": "A String", # Time the custom dimension was last modified.
    "webPropertyId": "A String", # Property ID.
    "active": True or False, # Boolean indicating whether the custom dimension is active.
    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      "href": "A String", # Link to the property to which the custom dimension belongs.
      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
    },
    "id": "A String", # Custom dimension ID.
    "selfLink": "A String", # Link for the custom dimension
    "accountId": "A String", # Account ID.
  }

  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      "index": 42, # Index of the custom dimension.
      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
      "name": "A String", # Name of the custom dimension.
      "created": "A String", # Time the custom dimension was created.
      "updated": "A String", # Time the custom dimension was last modified.
      "webPropertyId": "A String", # Property ID.
      "active": True or False, # Boolean indicating whether the custom dimension is active.
      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        "href": "A String", # Link to the property to which the custom dimension belongs.
        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
      },
      "id": "A String", # Custom dimension ID.
      "selfLink": "A String", # Link for the custom dimension
      "accountId": "A String", # Account ID.
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</code>
  <pre>Updates an existing custom dimension.

Args:
  accountId: string, Account ID for the custom dimension to update. (required)
  webPropertyId: string, Web property ID for the custom dimension to update. (required)
  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # JSON template for Analytics Custom Dimension.
    "index": 42, # Index of the custom dimension.
    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
    "name": "A String", # Name of the custom dimension.
    "created": "A String", # Time the custom dimension was created.
    "updated": "A String", # Time the custom dimension was last modified.
    "webPropertyId": "A String", # Property ID.
    "active": True or False, # Boolean indicating whether the custom dimension is active.
    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      "href": "A String", # Link to the property to which the custom dimension belongs.
      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
    },
    "id": "A String", # Custom dimension ID.
    "selfLink": "A String", # Link for the custom dimension
    "accountId": "A String", # Account ID.
  }

  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      "index": 42, # Index of the custom dimension.
      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
      "name": "A String", # Name of the custom dimension.
      "created": "A String", # Time the custom dimension was created.
      "updated": "A String", # Time the custom dimension was last modified.
      "webPropertyId": "A String", # Property ID.
      "active": True or False, # Boolean indicating whether the custom dimension is active.
      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        "href": "A String", # Link to the property to which the custom dimension belongs.
        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
      },
      "id": "A String", # Custom dimension ID.
      "selfLink": "A String", # Link for the custom dimension
      "accountId": "A String", # Account ID.
    }</pre>
</div>

</body></html>