<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="vmmigration_v1alpha1.html">VM Migration API</a> . <a href="vmmigration_v1alpha1.projects.html">projects</a> . <a href="vmmigration_v1alpha1.projects.locations.html">locations</a> . <a href="vmmigration_v1alpha1.projects.locations.sources.html">sources</a> . <a href="vmmigration_v1alpha1.projects.locations.sources.utilizationReports.html">utilizationReports</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, requestId=None, utilizationReportId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a new UtilizationReport.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a single Utilization Report.</p>
<p class="toc_element">
  <code><a href="#get">get(name, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a single Utilization Report.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists Utilization Reports of the given Source.</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="create">create(parent, body=None, requestId=None, utilizationReportId=None, x__xgafv=None)</code>
  <pre>Creates a new UtilizationReport.

Args:
  parent: string, Required. The Utilization Report&#x27;s parent. (required)
  body: object, The request body.
    The object takes the form of:

{ # Utilization report details the utilization (CPU, memory, etc.) of selected source VMs.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the report was created (this refers to the time of the request, not the time the report creation completed).
  &quot;displayName&quot;: &quot;A String&quot;, # The report display name, as assigned by the user.
  &quot;error&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). # Output only. Provides details on the state of the report in case of an error.
    &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;frameEndTime&quot;: &quot;A String&quot;, # Output only. The point in time when the time frame ends. Notice that the time frame is counted backwards. For instance if the &quot;frame_end_time&quot; value is 2021/01/20 and the time frame is WEEK then the report covers the week between 2021/01/20 and 2021/01/14.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The report unique name.
  &quot;state&quot;: &quot;A String&quot;, # Output only. Current state of the report.
  &quot;stateTime&quot;: &quot;A String&quot;, # Output only. The time the state was last set.
  &quot;timeFrame&quot;: &quot;A String&quot;, # Time frame of the report.
  &quot;vmCount&quot;: 42, # Output only. Total number of VMs included in the report.
  &quot;vms&quot;: [ # List of utilization information per VM. When sent as part of the request, the &quot;vm_id&quot; field is used in order to specify which VMs to include in the report. In that case all other fields are ignored.
    { # Utilization information of a single VM.
      &quot;utilization&quot;: { # Utilization metrics values for a single VM. # Utilization metrics for this VM.
        &quot;cpuAverage&quot;: 42, # Average CPU usage, percent.
        &quot;cpuAveragePercent&quot;: 42, # Average CPU usage, percent.
        &quot;cpuMax&quot;: 42, # Max CPU usage, percent.
        &quot;cpuMaxPercent&quot;: 42, # Max CPU usage, percent.
        &quot;diskIoRateAverage&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
        &quot;diskIoRateAverageKbps&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
        &quot;diskIoRateMax&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
        &quot;diskIoRateMaxKbps&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
        &quot;memoryAverage&quot;: 42, # Average memory usage, percent.
        &quot;memoryAveragePercent&quot;: 42, # Average memory usage, percent.
        &quot;memoryMax&quot;: 42, # Max memory usage, percent.
        &quot;memoryMaxPercent&quot;: 42, # Max memory usage, percent.
        &quot;networkThroughputAverage&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputAverageKbps&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputMax&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputMaxKbps&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
      },
      &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s ID in the source.
      &quot;vmwareVmDetails&quot;: { # VmwareVmDetails describes a VM in vCenter. # The description of the VM in a Source of type Vmware.
        &quot;bootOption&quot;: &quot;A String&quot;, # Output only. The VM Boot Option.
        &quot;committedStorage&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
        &quot;committedStorageMb&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
        &quot;cpuCount&quot;: 42, # The number of cpus in the VM.
        &quot;datacenterDescription&quot;: &quot;A String&quot;, # The descriptive name of the vCenter&#x27;s datacenter this VM is contained in.
        &quot;datacenterId&quot;: &quot;A String&quot;, # The id of the vCenter&#x27;s datacenter this VM is contained in.
        &quot;diskCount&quot;: 42, # The number of disks the VM has.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the VM. Note that this is not necessarily unique.
        &quot;guestDescription&quot;: &quot;A String&quot;, # The VM&#x27;s OS. See for example https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of strings this might hold.
        &quot;memoryMb&quot;: 42, # The size of the memory of the VM in MB.
        &quot;powerState&quot;: &quot;A String&quot;, # The power state of the VM at the moment list was taken.
        &quot;uuid&quot;: &quot;A String&quot;, # The unique identifier of the VM in vCenter.
        &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s id in the source (note that this is not the MigratingVm&#x27;s id). This is the moref id of the VM.
      },
    },
  ],
  &quot;vmsCount&quot;: 42, # Output only. Total number of VMs included in the report.
}

  requestId: string, A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  utilizationReportId: string, Required. The ID to use for the report, which will become the final component of the reports&#x27;s resource name. This value maximum length is 63 characters, and valid characters are /a-z-/. It must start with an english letter and must not end with a hyphen.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&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). # The error result of the operation in case of failure or cancellation.
    &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;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
  <pre>Deletes a single Utilization Report.

Args:
  name: string, Required. The Utilization Report name. (required)
  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&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). # The error result of the operation in case of failure or cancellation.
    &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;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, view=None, x__xgafv=None)</code>
  <pre>Gets a single Utilization Report.

Args:
  name: string, Required. The Utilization Report name. (required)
  view: string, Optional. The level of details of the report. Defaults to FULL
    Allowed values
      UTILIZATION_REPORT_VIEW_UNSPECIFIED - The default / unset value. The API will default to FULL on single report request and BASIC for multiple reports request.
      BASIC - Get the report metadata, without the list of VMs and their utilization info.
      FULL - Include everything.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Utilization report details the utilization (CPU, memory, etc.) of selected source VMs.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the report was created (this refers to the time of the request, not the time the report creation completed).
  &quot;displayName&quot;: &quot;A String&quot;, # The report display name, as assigned by the user.
  &quot;error&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). # Output only. Provides details on the state of the report in case of an error.
    &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;frameEndTime&quot;: &quot;A String&quot;, # Output only. The point in time when the time frame ends. Notice that the time frame is counted backwards. For instance if the &quot;frame_end_time&quot; value is 2021/01/20 and the time frame is WEEK then the report covers the week between 2021/01/20 and 2021/01/14.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The report unique name.
  &quot;state&quot;: &quot;A String&quot;, # Output only. Current state of the report.
  &quot;stateTime&quot;: &quot;A String&quot;, # Output only. The time the state was last set.
  &quot;timeFrame&quot;: &quot;A String&quot;, # Time frame of the report.
  &quot;vmCount&quot;: 42, # Output only. Total number of VMs included in the report.
  &quot;vms&quot;: [ # List of utilization information per VM. When sent as part of the request, the &quot;vm_id&quot; field is used in order to specify which VMs to include in the report. In that case all other fields are ignored.
    { # Utilization information of a single VM.
      &quot;utilization&quot;: { # Utilization metrics values for a single VM. # Utilization metrics for this VM.
        &quot;cpuAverage&quot;: 42, # Average CPU usage, percent.
        &quot;cpuAveragePercent&quot;: 42, # Average CPU usage, percent.
        &quot;cpuMax&quot;: 42, # Max CPU usage, percent.
        &quot;cpuMaxPercent&quot;: 42, # Max CPU usage, percent.
        &quot;diskIoRateAverage&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
        &quot;diskIoRateAverageKbps&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
        &quot;diskIoRateMax&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
        &quot;diskIoRateMaxKbps&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
        &quot;memoryAverage&quot;: 42, # Average memory usage, percent.
        &quot;memoryAveragePercent&quot;: 42, # Average memory usage, percent.
        &quot;memoryMax&quot;: 42, # Max memory usage, percent.
        &quot;memoryMaxPercent&quot;: 42, # Max memory usage, percent.
        &quot;networkThroughputAverage&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputAverageKbps&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputMax&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
        &quot;networkThroughputMaxKbps&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
      },
      &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s ID in the source.
      &quot;vmwareVmDetails&quot;: { # VmwareVmDetails describes a VM in vCenter. # The description of the VM in a Source of type Vmware.
        &quot;bootOption&quot;: &quot;A String&quot;, # Output only. The VM Boot Option.
        &quot;committedStorage&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
        &quot;committedStorageMb&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
        &quot;cpuCount&quot;: 42, # The number of cpus in the VM.
        &quot;datacenterDescription&quot;: &quot;A String&quot;, # The descriptive name of the vCenter&#x27;s datacenter this VM is contained in.
        &quot;datacenterId&quot;: &quot;A String&quot;, # The id of the vCenter&#x27;s datacenter this VM is contained in.
        &quot;diskCount&quot;: 42, # The number of disks the VM has.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the VM. Note that this is not necessarily unique.
        &quot;guestDescription&quot;: &quot;A String&quot;, # The VM&#x27;s OS. See for example https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of strings this might hold.
        &quot;memoryMb&quot;: 42, # The size of the memory of the VM in MB.
        &quot;powerState&quot;: &quot;A String&quot;, # The power state of the VM at the moment list was taken.
        &quot;uuid&quot;: &quot;A String&quot;, # The unique identifier of the VM in vCenter.
        &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s id in the source (note that this is not the MigratingVm&#x27;s id). This is the moref id of the VM.
      },
    },
  ],
  &quot;vmsCount&quot;: 42, # Output only. Total number of VMs included in the report.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, view=None, x__xgafv=None)</code>
  <pre>Lists Utilization Reports of the given Source.

Args:
  parent: string, Required. The Utilization Reports parent. (required)
  filter: string, Optional. The filter request.
  orderBy: string, Optional. the order by fields for the result.
  pageSize: integer, Optional. The maximum number of reports to return. The service may return fewer than this value. If unspecified, at most 500 reports will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.
  pageToken: string, Required. A page token, received from a previous `ListUtilizationReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListUtilizationReports` must match the call that provided the page token.
  view: string, Optional. The level of details of each report. Defaults to BASIC.
    Allowed values
      UTILIZATION_REPORT_VIEW_UNSPECIFIED - The default / unset value. The API will default to FULL on single report request and BASIC for multiple reports request.
      BASIC - Get the report metadata, without the list of VMs and their utilization info.
      FULL - Include everything.
  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 &#x27;ListUtilizationReports&#x27; request.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
  &quot;unreachable&quot;: [ # Output only. Locations that could not be reached.
    &quot;A String&quot;,
  ],
  &quot;utilizationReports&quot;: [ # Output only. The list of reports.
    { # Utilization report details the utilization (CPU, memory, etc.) of selected source VMs.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the report was created (this refers to the time of the request, not the time the report creation completed).
      &quot;displayName&quot;: &quot;A String&quot;, # The report display name, as assigned by the user.
      &quot;error&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). # Output only. Provides details on the state of the report in case of an error.
        &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;frameEndTime&quot;: &quot;A String&quot;, # Output only. The point in time when the time frame ends. Notice that the time frame is counted backwards. For instance if the &quot;frame_end_time&quot; value is 2021/01/20 and the time frame is WEEK then the report covers the week between 2021/01/20 and 2021/01/14.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The report unique name.
      &quot;state&quot;: &quot;A String&quot;, # Output only. Current state of the report.
      &quot;stateTime&quot;: &quot;A String&quot;, # Output only. The time the state was last set.
      &quot;timeFrame&quot;: &quot;A String&quot;, # Time frame of the report.
      &quot;vmCount&quot;: 42, # Output only. Total number of VMs included in the report.
      &quot;vms&quot;: [ # List of utilization information per VM. When sent as part of the request, the &quot;vm_id&quot; field is used in order to specify which VMs to include in the report. In that case all other fields are ignored.
        { # Utilization information of a single VM.
          &quot;utilization&quot;: { # Utilization metrics values for a single VM. # Utilization metrics for this VM.
            &quot;cpuAverage&quot;: 42, # Average CPU usage, percent.
            &quot;cpuAveragePercent&quot;: 42, # Average CPU usage, percent.
            &quot;cpuMax&quot;: 42, # Max CPU usage, percent.
            &quot;cpuMaxPercent&quot;: 42, # Max CPU usage, percent.
            &quot;diskIoRateAverage&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
            &quot;diskIoRateAverageKbps&quot;: &quot;A String&quot;, # Average disk IO rate, in kilobytes per second.
            &quot;diskIoRateMax&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
            &quot;diskIoRateMaxKbps&quot;: &quot;A String&quot;, # Max disk IO rate, in kilobytes per second.
            &quot;memoryAverage&quot;: 42, # Average memory usage, percent.
            &quot;memoryAveragePercent&quot;: 42, # Average memory usage, percent.
            &quot;memoryMax&quot;: 42, # Max memory usage, percent.
            &quot;memoryMaxPercent&quot;: 42, # Max memory usage, percent.
            &quot;networkThroughputAverage&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
            &quot;networkThroughputAverageKbps&quot;: &quot;A String&quot;, # Average network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
            &quot;networkThroughputMax&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
            &quot;networkThroughputMaxKbps&quot;: &quot;A String&quot;, # Max network throughput (combined transmit-rates and receive-rates), in kilobytes per second.
          },
          &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s ID in the source.
          &quot;vmwareVmDetails&quot;: { # VmwareVmDetails describes a VM in vCenter. # The description of the VM in a Source of type Vmware.
            &quot;bootOption&quot;: &quot;A String&quot;, # Output only. The VM Boot Option.
            &quot;committedStorage&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
            &quot;committedStorageMb&quot;: &quot;A String&quot;, # The total size of the storage allocated to the VM in MB.
            &quot;cpuCount&quot;: 42, # The number of cpus in the VM.
            &quot;datacenterDescription&quot;: &quot;A String&quot;, # The descriptive name of the vCenter&#x27;s datacenter this VM is contained in.
            &quot;datacenterId&quot;: &quot;A String&quot;, # The id of the vCenter&#x27;s datacenter this VM is contained in.
            &quot;diskCount&quot;: 42, # The number of disks the VM has.
            &quot;displayName&quot;: &quot;A String&quot;, # The display name of the VM. Note that this is not necessarily unique.
            &quot;guestDescription&quot;: &quot;A String&quot;, # The VM&#x27;s OS. See for example https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html for types of strings this might hold.
            &quot;memoryMb&quot;: 42, # The size of the memory of the VM in MB.
            &quot;powerState&quot;: &quot;A String&quot;, # The power state of the VM at the moment list was taken.
            &quot;uuid&quot;: &quot;A String&quot;, # The unique identifier of the VM in vCenter.
            &quot;vmId&quot;: &quot;A String&quot;, # The VM&#x27;s id in the source (note that this is not the MigratingVm&#x27;s id). This is the moref id of the VM.
          },
        },
      ],
      &quot;vmsCount&quot;: 42, # Output only. Total number of VMs included in the report.
    },
  ],
}</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>