<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="osconfig_v1alpha.html">OS Config API</a> . <a href="osconfig_v1alpha.projects.html">projects</a> . <a href="osconfig_v1alpha.projects.locations.html">locations</a> . <a href="osconfig_v1alpha.projects.locations.instances.html">instances</a> . <a href="osconfig_v1alpha.projects.locations.instances.vulnerabilityReports.html">vulnerabilityReports</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 the vulnerability report for the specified VM instance. Only VMs with inventory data have vulnerability reports associated with them.</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">List vulnerability reports for all VM instances in the specified zone.</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>
<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 the vulnerability report for the specified VM instance. Only VMs with inventory data have vulnerability reports associated with them.

Args:
  name: string, Required. API resource name for vulnerability resource. Format: `projects/{project}/locations/{location}/instances/{instance}/vulnerabilityReport` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, either Compute Engine `instance-id` or `instance-name` can be provided. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This API resource represents the vulnerability report for a specified Compute Engine virtual machine (VM) instance at a given point in time. For more information, see [Vulnerability reports](https://cloud.google.com/compute/docs/instances/os-inventory-management#vulnerability-reports).
  &quot;name&quot;: &quot;A String&quot;, # Output only. The `vulnerabilityReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/vulnerabilityReport`
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp for when the last vulnerability report was generated for the VM.
  &quot;vulnerabilities&quot;: [ # Output only. List of vulnerabilities affecting the VM.
    { # A vulnerability affecting the VM instance.
      &quot;availableInventoryItemIds&quot;: [ # Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.
        &quot;A String&quot;,
      ],
      &quot;createTime&quot;: &quot;A String&quot;, # The timestamp for when the vulnerability was first detected.
      &quot;details&quot;: { # Contains metadata information for the vulnerability. This information is collected from the upstream feed of the operating system. # Contains metadata as per the upstream feed of the operating system and NVD.
        &quot;cve&quot;: &quot;A String&quot;, # The CVE of the vulnerability. CVE cannot be empty and the combination of should be unique across vulnerabilities for a VM.
        &quot;cvssV2Score&quot;: 3.14, # The CVSS V2 score of this vulnerability. CVSS V2 score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.
        &quot;cvssV3&quot;: { # Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document # The full description of the CVSSv3 for this vulnerability from NVD.
          &quot;attackComplexity&quot;: &quot;A String&quot;, # This metric describes the conditions beyond the attacker&#x27;s control that must exist in order to exploit the vulnerability.
          &quot;attackVector&quot;: &quot;A String&quot;, # This metric reflects the context by which vulnerability exploitation is possible.
          &quot;availabilityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.
          &quot;baseScore&quot;: 3.14, # The base score is a function of the base metric scores. https://www.first.org/cvss/specification-document#Base-Metrics
          &quot;confidentialityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.
          &quot;exploitabilityScore&quot;: 3.14, # The Exploitability sub-score equation is derived from the Base Exploitability metrics. https://www.first.org/cvss/specification-document#2-1-Exploitability-Metrics
          &quot;impactScore&quot;: 3.14, # The Impact sub-score equation is derived from the Base Impact metrics.
          &quot;integrityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to integrity of a successfully exploited vulnerability.
          &quot;privilegesRequired&quot;: &quot;A String&quot;, # This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.
          &quot;scope&quot;: &quot;A String&quot;, # The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.
          &quot;userInteraction&quot;: &quot;A String&quot;, # This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.
        },
        &quot;description&quot;: &quot;A String&quot;, # The note or description describing the vulnerability from the distro.
        &quot;references&quot;: [ # Corresponds to the references attached to the `VulnerabilityDetails`.
          { # A reference for this vulnerability.
            &quot;url&quot;: &quot;A String&quot;, # The url of the reference.
          },
        ],
        &quot;severity&quot;: &quot;A String&quot;, # Assigned severity/impact ranking from the distro.
      },
      &quot;installedInventoryItemIds&quot;: [ # Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.
        &quot;A String&quot;,
      ],
      &quot;updateTime&quot;: &quot;A String&quot;, # The timestamp for when the vulnerability was last modified.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>List vulnerability reports for all VM instances in the specified zone.

Args:
  parent: string, Required. The parent resource name. Format: `projects/{project}/locations/{location}/instances/{instance}` For `{project}`, either `project-number` or `project-id` can be provided. For `{instance}`, only `-` character is supported to list vulnerability reports across VMs. (required)
  filter: string, If provided, this field specifies the criteria that must be met by a `vulnerabilityReport` API resource to be included in the response.
  pageSize: integer, The maximum number of results to return.
  pageToken: string, A pagination token returned from a previous call to `ListVulnerabilityReports` that indicates where this listing should continue from.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A response message for listing vulnerability reports for all VM instances in the specified location.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # The pagination token to retrieve the next page of vulnerabilityReports object.
  &quot;vulnerabilityReports&quot;: [ # List of vulnerabilityReport objects.
    { # This API resource represents the vulnerability report for a specified Compute Engine virtual machine (VM) instance at a given point in time. For more information, see [Vulnerability reports](https://cloud.google.com/compute/docs/instances/os-inventory-management#vulnerability-reports).
      &quot;name&quot;: &quot;A String&quot;, # Output only. The `vulnerabilityReport` API resource name. Format: `projects/{project_number}/locations/{location}/instances/{instance_id}/vulnerabilityReport`
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp for when the last vulnerability report was generated for the VM.
      &quot;vulnerabilities&quot;: [ # Output only. List of vulnerabilities affecting the VM.
        { # A vulnerability affecting the VM instance.
          &quot;availableInventoryItemIds&quot;: [ # Corresponds to the `AVAILABLE_PACKAGE` inventory item on the VM. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. If there is no available fix, the field is empty. The `inventory_item` value specifies the latest `SoftwarePackage` available to the VM that fixes the vulnerability.
            &quot;A String&quot;,
          ],
          &quot;createTime&quot;: &quot;A String&quot;, # The timestamp for when the vulnerability was first detected.
          &quot;details&quot;: { # Contains metadata information for the vulnerability. This information is collected from the upstream feed of the operating system. # Contains metadata as per the upstream feed of the operating system and NVD.
            &quot;cve&quot;: &quot;A String&quot;, # The CVE of the vulnerability. CVE cannot be empty and the combination of should be unique across vulnerabilities for a VM.
            &quot;cvssV2Score&quot;: 3.14, # The CVSS V2 score of this vulnerability. CVSS V2 score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.
            &quot;cvssV3&quot;: { # Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document # The full description of the CVSSv3 for this vulnerability from NVD.
              &quot;attackComplexity&quot;: &quot;A String&quot;, # This metric describes the conditions beyond the attacker&#x27;s control that must exist in order to exploit the vulnerability.
              &quot;attackVector&quot;: &quot;A String&quot;, # This metric reflects the context by which vulnerability exploitation is possible.
              &quot;availabilityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.
              &quot;baseScore&quot;: 3.14, # The base score is a function of the base metric scores. https://www.first.org/cvss/specification-document#Base-Metrics
              &quot;confidentialityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.
              &quot;exploitabilityScore&quot;: 3.14, # The Exploitability sub-score equation is derived from the Base Exploitability metrics. https://www.first.org/cvss/specification-document#2-1-Exploitability-Metrics
              &quot;impactScore&quot;: 3.14, # The Impact sub-score equation is derived from the Base Impact metrics.
              &quot;integrityImpact&quot;: &quot;A String&quot;, # This metric measures the impact to integrity of a successfully exploited vulnerability.
              &quot;privilegesRequired&quot;: &quot;A String&quot;, # This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.
              &quot;scope&quot;: &quot;A String&quot;, # The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.
              &quot;userInteraction&quot;: &quot;A String&quot;, # This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.
            },
            &quot;description&quot;: &quot;A String&quot;, # The note or description describing the vulnerability from the distro.
            &quot;references&quot;: [ # Corresponds to the references attached to the `VulnerabilityDetails`.
              { # A reference for this vulnerability.
                &quot;url&quot;: &quot;A String&quot;, # The url of the reference.
              },
            ],
            &quot;severity&quot;: &quot;A String&quot;, # Assigned severity/impact ranking from the distro.
          },
          &quot;installedInventoryItemIds&quot;: [ # Corresponds to the `INSTALLED_PACKAGE` inventory item on the VM. This field displays the inventory items affected by this vulnerability. If the vulnerability report was not updated after the VM inventory update, these values might not display in VM inventory. For some distros, this field may be empty.
            &quot;A String&quot;,
          ],
          &quot;updateTime&quot;: &quot;A String&quot;, # The timestamp for when the vulnerability was last modified.
        },
      ],
    },
  ],
}</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>

</body></html>