<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="dataplex_v1.html">Cloud Dataplex API</a> . <a href="dataplex_v1.projects.html">projects</a> . <a href="dataplex_v1.projects.locations.html">locations</a> . <a href="dataplex_v1.projects.locations.entryGroups.html">entryGroups</a> . <a href="dataplex_v1.projects.locations.entryGroups.entries.html">entries</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, entryId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an Entry.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an Entry.</p>
<p class="toc_element">
  <code><a href="#get">get(name, aspectTypes=None, paths=None, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an Entry. Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc Metastore metadata that is stored in Dataplex Universal Catalog is changing. For more information, see Changes to metadata stored in Dataplex Universal Catalog (https://cloud.google.com/dataplex/docs/metadata-changes).</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists Entries within an EntryGroup. Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc Metastore metadata that is stored in Dataplex Universal Catalog is changing. For more information, see Changes to metadata stored in Dataplex Universal Catalog (https://cloud.google.com/dataplex/docs/metadata-changes).</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, allowMissing=None, aspectKeys=None, body=None, deleteMissingAspects=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an Entry.</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, entryId=None, x__xgafv=None)</code>
  <pre>Creates an Entry.

Args:
  parent: string, Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}. (required)
  body: object, The request body.
    The object takes the form of:

{ # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}

  entryId: string, Required. Entry identifier. It has to be unique within an Entry Group.Entries corresponding to Google Cloud resources use an Entry ID format based on full resource names (https://cloud.google.com/apis/design/resource_names#full_resource_name). The format is a full resource name of the resource without the prefix double slashes in the API service name part of the full resource name. This allows retrieval of entries using their associated resource name.For example, if the full resource name of a resource is //library.googleapis.com/shelves/shelf1/books/book2, then the suggested entry_id is library.googleapis.com/shelves/shelf1/books/book2.It is also suggested to follow the same convention for entries corresponding to resources from providers or systems other than Google Cloud.The maximum size of the field is 4000 characters.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes an Entry.

Args:
  name: string, Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, aspectTypes=None, paths=None, view=None, x__xgafv=None)</code>
  <pre>Gets an Entry. Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc Metastore metadata that is stored in Dataplex Universal Catalog is changing. For more information, see Changes to metadata stored in Dataplex Universal Catalog (https://cloud.google.com/dataplex/docs/metadata-changes).

Args:
  name: string, Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}. (required)
  aspectTypes: string, Optional. Limits the aspects returned to the provided aspect types. It only works for CUSTOM view. (repeated)
  paths: string, Optional. Limits the aspects returned to those associated with the provided paths within the Entry. It only works for CUSTOM view. (repeated)
  view: string, Optional. View to control which parts of an entry the service should return.
    Allowed values
      ENTRY_VIEW_UNSPECIFIED - Unspecified EntryView. Defaults to FULL.
      BASIC - Returns entry only, without aspects.
      FULL - Returns all required aspects as well as the keys of all non-required aspects.
      CUSTOM - Returns aspects matching custom fields in GetEntryRequest. If the number of aspects exceeds 100, the first 100 will be returned.
      ALL - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists Entries within an EntryGroup. Caution: The Vertex AI, Bigtable, Spanner, Pub/Sub, Dataform, and Dataproc Metastore metadata that is stored in Dataplex Universal Catalog is changing. For more information, see Changes to metadata stored in Dataplex Universal Catalog (https://cloud.google.com/dataplex/docs/metadata-changes).

Args:
  parent: string, Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}. (required)
  filter: string, Optional. A filter on the entries to return. Filters are case-sensitive. You can filter the request by the following fields: entry_type entry_source.display_nameThe comparison operators are =, !=, &lt;, &gt;, &lt;=, &gt;=. The service compares strings according to lexical order.You can use the logical operators AND, OR, NOT in the filter.You can use Wildcard &quot;*&quot;, but for entry_type you need to provide the full project id or number.Example filter expressions: &quot;entry_source.display_name=AnExampleDisplayName&quot; &quot;entry_type=projects/example-project/locations/global/entryTypes/example-entry_type&quot; &quot;entry_type=projects/example-project/locations/us/entryTypes/a* OR entry_type=projects/another-project/locations/*&quot; &quot;NOT entry_source.display_name=AnotherExampleDisplayName&quot;
  pageSize: integer, Optional. Number of items to return per page. If there are remaining results, the service returns a next_page_token. If unspecified, the service returns at most 10 Entries. The maximum value is 100; values above 100 will be coerced to 100.
  pageToken: string, Optional. Page token received from a previous ListEntries call. Provide this to retrieve the subsequent page.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # List Entries response.
  &quot;entries&quot;: [ # The list of entries under the given parent location.
    { # An entry is a representation of a data resource that can be described by various metadata.
      &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
        &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
          &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
            &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
            &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
            &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
          },
          &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
          &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
        },
      },
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
      &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
        &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
          { # Information about individual items in the hierarchy that is associated with the data resource.
            &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
            &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
          },
        ],
        &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
        &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
        &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
        &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
        &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
        &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
        &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
        &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
      },
      &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
      &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
      &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
      &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</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, allowMissing=None, aspectKeys=None, body=None, deleteMissingAspects=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an Entry.

Args:
  name: string, Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}. (required)
  body: object, The request body.
    The object takes the form of:

{ # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}

  allowMissing: boolean, Optional. If set to true and the entry doesn&#x27;t exist, the service will create it.
  aspectKeys: string, Optional. The map keys of the Aspects which the service should modify. It supports the following syntaxes: - matches an aspect of the given type and empty path. @path - matches an aspect of the given type and specified path. For example, to attach an aspect to a field that is specified by the schema aspect, the path should have the format Schema.. @* - matches aspects of the given type for all paths. *@path - matches aspects of all types on the given path.The service will not remove existing aspects matching the syntax unless delete_missing_aspects is set to true.If this field is left empty, the service treats it as specifying exactly those Aspects present in the request. (repeated)
  deleteMissingAspects: boolean, Optional. If set to true and the aspect_keys specify aspect ranges, the service deletes any existing aspects from that range that weren&#x27;t provided in the request.
  updateMask: string, Optional. Mask of fields to update. To update Aspects, the update_mask must contain the value &quot;aspects&quot;.If the update_mask is empty, the service will update all modifiable fields present in the request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An entry is a representation of a data resource that can be described by various metadata.
  &quot;aspects&quot;: { # Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following: If the aspect is attached directly to the entry: {project_id_or_number}.{location_id}.{aspect_type_id} If the aspect is attached to an entry&#x27;s path: {project_id_or_number}.{location_id}.{aspect_type_id}@{path}
    &quot;a_key&quot;: { # An aspect is a single piece of metadata describing an entry.
      &quot;aspectSource&quot;: { # Information related to the source system of the aspect. # Optional. Information related to the source system of the aspect.
        &quot;createTime&quot;: &quot;A String&quot;, # The time the aspect was created in the source system.
        &quot;dataVersion&quot;: &quot;A String&quot;, # The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc).
        &quot;updateTime&quot;: &quot;A String&quot;, # The time the aspect was last updated in the source system.
      },
      &quot;aspectType&quot;: &quot;A String&quot;, # Output only. The resource name of the type used to create this Aspect.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was created.
      &quot;data&quot;: { # Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;path&quot;: &quot;A String&quot;, # Output only. The path in the entry under which the aspect is attached.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the Aspect was last updated.
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was created in Dataplex Universal Catalog.
  &quot;entrySource&quot;: { # Information related to the source system of the data resource that is represented by the entry. # Optional. Information related to the source system of the data resource that is represented by the entry.
    &quot;ancestors&quot;: [ # Immutable. The entries representing the ancestors of the data resource in the source system.
      { # Information about individual items in the hierarchy that is associated with the data resource.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the ancestor resource.
        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the ancestor resource.
      },
    ],
    &quot;createTime&quot;: &quot;A String&quot;, # The time when the resource was created in the source system.
    &quot;description&quot;: &quot;A String&quot;, # A description of the data resource. Maximum length is 2,000 characters.
    &quot;displayName&quot;: &quot;A String&quot;, # A user-friendly display name. Maximum length is 500 characters.
    &quot;labels&quot;: { # User-defined labels. The maximum size of keys and values is 128 characters each.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud.
    &quot;platform&quot;: &quot;A String&quot;, # The platform containing the source system. Maximum length is 64 characters.
    &quot;resource&quot;: &quot;A String&quot;, # The name of the resource in the source system. Maximum length is 4,000 characters.
    &quot;system&quot;: &quot;A String&quot;, # The name of the source system. Maximum length is 64 characters.
    &quot;updateTime&quot;: &quot;A String&quot;, # The time when the resource was last updated in the source system. If the entry exists in the system and its EntrySource has update_time populated, further updates to the EntrySource of the entry must provide incremental updates to its update_time.
  },
  &quot;entryType&quot;: &quot;A String&quot;, # Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}.
  &quot;fullyQualifiedName&quot;: &quot;A String&quot;, # Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names (https://cloud.google.com/data-catalog/docs/fully-qualified-names). The maximum size of the field is 4000 characters.
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The relative resource name of the entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;parentEntry&quot;: &quot;A String&quot;, # Optional. Immutable. The resource name of the parent entry, in the format projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the entry was last updated in Dataplex Universal Catalog.
}</pre>
</div>

</body></html>