<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="analyticsadmin_v1alpha.html">Google Analytics Admin API</a> . <a href="analyticsadmin_v1alpha.properties.html">properties</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.androidAppDataStreams.html">androidAppDataStreams()</a></code>
</p>
<p class="firstline">Returns the androidAppDataStreams Resource.</p>

<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.firebaseLinks.html">firebaseLinks()</a></code>
</p>
<p class="firstline">Returns the firebaseLinks Resource.</p>

<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.googleAdsLinks.html">googleAdsLinks()</a></code>
</p>
<p class="firstline">Returns the googleAdsLinks Resource.</p>

<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.iosAppDataStreams.html">iosAppDataStreams()</a></code>
</p>
<p class="firstline">Returns the iosAppDataStreams Resource.</p>

<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.userLinks.html">userLinks()</a></code>
</p>
<p class="firstline">Returns the userLinks Resource.</p>

<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.properties.webDataStreams.html">webDataStreams()</a></code>
</p>
<p class="firstline">Returns the webDataStreams Resource.</p>

<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(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an "GA4" property with the specified location and attributes.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Marks target Property as soft-deleted (ie: "trashed") and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, UserLinks) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found, or is not an GA4 Property.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Lookup for a single "GA4" Property. Throws "Target not found" if no such property found, if property is not of the type "GA4", or if caller does not have permissions to access it.</p>
<p class="toc_element">
  <code><a href="#list">list(pageSize=None, pageToken=None, filter=None, showDeleted=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns child Properties under the specified parent Account. Only "GA4" properties will be returned. Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default. Returns an empty list if no relevant properties are found.</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="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a property.</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(body=None, x__xgafv=None)</code>
  <pre>Creates an &quot;GA4&quot; property with the specified location and attributes.

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

{ # A resource message representing a Google Analytics GA4 property.
  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
  &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
  &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
  &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
  &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
}

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

Returns:
  An object of the form:

    { # A resource message representing a Google Analytics GA4 property.
    &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
    &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
    &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
    &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
    &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
    &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Marks target Property as soft-deleted (ie: &quot;trashed&quot;) and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, UserLinks) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found, or is not an GA4 Property.

Args:
  name: string, Required. The name of the Property to soft-delete. Format: properties/{property_id} Example: &quot;properties/1000&quot; (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Lookup for a single &quot;GA4&quot; Property. Throws &quot;Target not found&quot; if no such property found, if property is not of the type &quot;GA4&quot;, or if caller does not have permissions to access it.

Args:
  name: string, Required. The name of the property to lookup. Format: properties/{property_id} Example: &quot;properties/1000&quot; (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resource message representing a Google Analytics GA4 property.
    &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
    &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
    &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
    &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
    &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
    &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(pageSize=None, pageToken=None, filter=None, showDeleted=None, x__xgafv=None)</code>
  <pre>Returns child Properties under the specified parent Account. Only &quot;GA4&quot; properties will be returned. Properties will be excluded if the caller does not have access. Soft-deleted (ie: &quot;trashed&quot;) properties are excluded by default. Returns an empty list if no relevant properties are found.

Args:
  pageSize: integer, The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)
  pageToken: string, A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProperties` must match the call that provided the page token.
  filter: string, Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account) or `firebase_project:`(The id or number of the linked firebase project). Some examples of filters: | Filter | Description | |-----------------------------|-------------------------------------------| | parent:accounts/123 | The account with account id: 123. | | firebase_project:project-id | The firebase project with id: project-id. | | firebase_project:123 | The firebase project with number: 123. |
  showDeleted: boolean, Whether to include soft-deleted (ie: &quot;trashed&quot;) Properties in the results. Properties can be inspected to determine whether they are deleted or not.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ListProperties RPC.
    &quot;properties&quot;: [ # Results that matched the filter criteria and were accessible to the caller.
      { # A resource message representing a Google Analytics GA4 property.
        &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
        &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
        &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
        &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
        &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
        &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
        &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
      },
    ],
    &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
  }</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="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates a property.

Args:
  name: string, Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot; (required)
  body: object, The request body.
    The object takes the form of:

{ # A resource message representing a Google Analytics GA4 property.
  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
  &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
  &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
  &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
  &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
}

  updateMask: string, The list of fields to be updated. Omitted fields will not be updated.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resource message representing a Google Analytics GA4 property.
    &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
    &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
    &quot;timeZone&quot;: &quot;A String&quot;, # Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
    &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
    &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
    &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
  }</pre>
</div>

</body></html>