<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="dlp_v2.html">Sensitive Data Protection (DLP)</a> . <a href="dlp_v2.projects.html">projects</a> . <a href="dlp_v2.projects.locations.html">locations</a> . <a href="dlp_v2.projects.locations.projectDataProfiles.html">projectDataProfiles</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="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a project data profile.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists project data profiles for an organization.</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>
<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="get">get(name, x__xgafv=None)</code>
  <pre>Gets a project data profile.

Args:
  name: string, Required. Resource name, for example `organizations/12345/locations/us/projectDataProfiles/53234423`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An aggregated profile for this project, based on the resources profiled within it.
  &quot;dataRiskLevel&quot;: { # Score is a summary of all elements in the data profile. A higher number means more risk. # The data risk level of this project.
    &quot;score&quot;: &quot;A String&quot;, # The score applied to the resource.
  },
  &quot;fileStoreDataProfileCount&quot;: &quot;A String&quot;, # The number of file store data profiles generated for this project.
  &quot;name&quot;: &quot;A String&quot;, # The resource name of the profile.
  &quot;profileLastGenerated&quot;: &quot;A String&quot;, # The last time the profile was generated.
  &quot;profileStatus&quot;: { # Success or errors for the profile generation. # Success or error status of the last attempt to profile the project.
    &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Profiling status code and optional message. The `status.code` value is 0 (default value) for OK.
      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
        {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    },
    &quot;timestamp&quot;: &quot;A String&quot;, # Time when the profile generation status was updated
  },
  &quot;projectId&quot;: &quot;A String&quot;, # Project ID or account that was profiled.
  &quot;sensitivityScore&quot;: { # Score is calculated from of all elements in the data profile. A higher level means the data is more sensitive. # The sensitivity score of this project.
    &quot;score&quot;: &quot;A String&quot;, # The sensitivity score applied to the resource.
  },
  &quot;tableDataProfileCount&quot;: &quot;A String&quot;, # The number of table data profiles generated for this project.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists project data profiles for an organization.

Args:
  parent: string, Required. organizations/{org_id}/locations/{loc_id} (required)
  filter: string, Allows filtering. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * Supported fields: - `project_id`: the Google Cloud project ID - `sensitivity_level`: HIGH|MODERATE|LOW - `data_risk_level`: HIGH|MODERATE|LOW - `status_code`: an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto - `profile_last_generated`: Date and time the profile was last generated * The operator must be `=` or `!=`. The `profile_last_generated` filter also supports `&lt;` and `&gt;`. The syntax is based on https://google.aip.dev/160. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `profile_last_generated &lt; &quot;2025-01-01T00:00:00.000Z&quot;` The length of this field should be no more than 500 characters.
  orderBy: string, Comma-separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields: - `project_id`: Google Cloud project ID - `sensitivity_level`: How sensitive the data in a project is, at most - `data_risk_level`: How much risk is associated with this data - `profile_last_generated`: Date and time (in epoch seconds) the profile was last generated
  pageSize: integer, Size of the page. This value can be limited by the server. If zero, server returns a page of max size 100.
  pageToken: string, Page token to continue retrieval.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # List of profiles generated for a given organization or project.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The next page token.
  &quot;projectDataProfiles&quot;: [ # List of data profiles.
    { # An aggregated profile for this project, based on the resources profiled within it.
      &quot;dataRiskLevel&quot;: { # Score is a summary of all elements in the data profile. A higher number means more risk. # The data risk level of this project.
        &quot;score&quot;: &quot;A String&quot;, # The score applied to the resource.
      },
      &quot;fileStoreDataProfileCount&quot;: &quot;A String&quot;, # The number of file store data profiles generated for this project.
      &quot;name&quot;: &quot;A String&quot;, # The resource name of the profile.
      &quot;profileLastGenerated&quot;: &quot;A String&quot;, # The last time the profile was generated.
      &quot;profileStatus&quot;: { # Success or errors for the profile generation. # Success or error status of the last attempt to profile the project.
        &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Profiling status code and optional message. The `status.code` value is 0 (default value) for OK.
          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
          &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
        },
        &quot;timestamp&quot;: &quot;A String&quot;, # Time when the profile generation status was updated
      },
      &quot;projectId&quot;: &quot;A String&quot;, # Project ID or account that was profiled.
      &quot;sensitivityScore&quot;: { # Score is calculated from of all elements in the data profile. A higher level means the data is more sensitive. # The sensitivity score of this project.
        &quot;score&quot;: &quot;A String&quot;, # The sensitivity score applied to the resource.
      },
      &quot;tableDataProfileCount&quot;: &quot;A String&quot;, # The number of table data profiles generated for this project.
    },
  ],
}</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>

</body></html>