Chrome Management API . customers . reports

Instance Methods

close()

Close httplib2 connections.

countChromeBrowsersNeedingAttention(customer, orgUnitId=None, x__xgafv=None)

Count of Chrome Browsers that have been recently enrolled, have new policy to be synced, or have no recent activity.

countChromeCrashEvents(customer, filter=None, orderBy=None, orgUnitId=None, x__xgafv=None)

Get a count of Chrome crash events.

countChromeDevicesReachingAutoExpirationDate(customer, maxAueDate=None, minAueDate=None, orgUnitId=None, x__xgafv=None)

Generate report of the number of devices expiring in each month of the selected time frame. Devices are grouped by auto update expiration date and model. Further information can be found [here](https://support.google.com/chrome/a/answer/10564947).

countChromeDevicesThatNeedAttention(customer, orgUnitId=None, readMask=None, x__xgafv=None)

Counts of ChromeOS devices that have not synced policies or have lacked user activity in the past 28 days, are out of date, or are not complaint. Further information can be found here https://support.google.com/chrome/a/answer/10564947

countChromeHardwareFleetDevices(customer, orgUnitId=None, readMask=None, x__xgafv=None)

Counts of devices with a specific hardware specification from the requested hardware type (for example model name, processor type). Further information can be found here https://support.google.com/chrome/a/answer/10564947

countChromeVersions(customer, filter=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)

Generate report of installed Chrome versions.

countChromeVersions_next()

Retrieves the next page of results.

countInstalledApps(customer, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)

Generate report of app installations.

countInstalledApps_next()

Retrieves the next page of results.

countPrintJobsByPrinter(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)

Get a summary of printing done by each printer.

countPrintJobsByPrinter_next()

Retrieves the next page of results.

countPrintJobsByUser(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)

Get a summary of printing done by each user.

countPrintJobsByUser_next()

Retrieves the next page of results.

enumeratePrintJobs(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)

Get a list of print jobs.

enumeratePrintJobs_next()

Retrieves the next page of results.

findInstalledAppDevices(customer, appId=None, appType=None, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)

Generate report of managed Chrome browser devices that have a specified app installed.

findInstalledAppDevices_next()

Retrieves the next page of results.

Method Details

close()
Close httplib2 connections.
countChromeBrowsersNeedingAttention(customer, orgUnitId=None, x__xgafv=None)
Count of Chrome Browsers that have been recently enrolled, have new policy to be synced, or have no recent activity.

Args:
  customer: string, Required. The customer ID or "my_customer" prefixed with "customers/". (required)
  orgUnitId: string, Optional. The ID of the organizational unit. If omitted, all data will be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing counts for browsers that need attention.
  "noRecentActivityCount": "A String", # Number of browsers that haven’t had any recent activity
  "pendingBrowserUpdateCount": "A String", # Number of browsers that are pending an OS update
  "recentlyEnrolledCount": "A String", # Number of browsers that have been recently enrolled
}
countChromeCrashEvents(customer, filter=None, orderBy=None, orgUnitId=None, x__xgafv=None)
Get a count of Chrome crash events.

Args:
  customer: string, Customer ID. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Supported filter fields: * major_browser_version * minor_browser_version * browser_channel * device_platform * past_number_days Example: `major_browser_version = 'M115' AND past_number_days = '28'`.
  orderBy: string, Field used to order results. Supported order by fields: * browser_version * count * date
  orgUnitId: string, If specified, only count the number of crash events of the devices in this organizational unit.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response contains a list of CrashEventCountByVersionPerDay which count the chrome crash at the certain date.
  "crashEventCounts": [ # Crash event counts grouped by date and browser version.
    { # The `count` of the Chrome crash events at the `date`.
      "browserVersion": "A String", # Browser version this is counting.
      "count": "A String", # Total count of crash events.
      "date": { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Date of the crash event.
        "day": 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        "month": 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        "year": 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      },
    },
  ],
}
countChromeDevicesReachingAutoExpirationDate(customer, maxAueDate=None, minAueDate=None, orgUnitId=None, x__xgafv=None)
Generate report of the number of devices expiring in each month of the selected time frame. Devices are grouped by auto update expiration date and model. Further information can be found [here](https://support.google.com/chrome/a/answer/10564947).

Args:
  customer: string, Required. The customer ID or "my_customer" prefixed with "customers/". (required)
  maxAueDate: string, Optional. Maximum expiration date in format yyyy-mm-dd in UTC timezone. If included returns all devices that have already expired and devices with auto expiration date equal to or earlier than the maximum date.
  minAueDate: string, Optional. Maximum expiration date in format yyyy-mm-dd in UTC timezone. If included returns all devices that have already expired and devices with auto expiration date equal to or later than the minimum date.
  orgUnitId: string, Optional. The organizational unit ID, if omitted, will return data for all organizational units.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a list of devices expiring in each month of a selected time frame. Counts are grouped by model and Auto Update Expiration date.
  "deviceAueCountReports": [ # The list of reports sorted by auto update expiration date in ascending order.
    { # Report for CountChromeDevicesPerAueDateResponse, contains the count of devices of a specific model and auto update expiration range.
      "aueMonth": "A String", # Enum value of month corresponding to the auto update expiration date in UTC time zone. If the device is already expired, this field is empty.
      "aueYear": "A String", # Int value of year corresponding to the Auto Update Expiration date in UTC time zone. If the device is already expired, this field is empty.
      "count": "A String", # Count of devices of this model.
      "expired": True or False, # Boolean value for whether or not the device has already expired.
      "model": "A String", # Public model name of the devices.
    },
  ],
}
countChromeDevicesThatNeedAttention(customer, orgUnitId=None, readMask=None, x__xgafv=None)
Counts of ChromeOS devices that have not synced policies or have lacked user activity in the past 28 days, are out of date, or are not complaint. Further information can be found here https://support.google.com/chrome/a/answer/10564947

Args:
  customer: string, Required. The customer ID or "my_customer" prefixed with "customers/". (required)
  orgUnitId: string, Optional. The ID of the organizational unit. If omitted, all data will be returned.
  readMask: string, Required. Mask of the fields that should be populated in the returned report.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing counts for devices that need attention.
  "noRecentPolicySyncCount": "A String", # Number of ChromeOS devices have not synced policies in the past 28 days.
  "noRecentUserActivityCount": "A String", # Number of ChromeOS devices that have not seen any user activity in the past 28 days.
  "osVersionNotCompliantCount": "A String", # Number of devices whose OS version is not compliant.
  "pendingUpdate": "A String", # Number of devices that are pending an OS update.
  "unsupportedPolicyCount": "A String", # Number of devices that are unable to apply a policy due to an OS version mismatch.
}
countChromeHardwareFleetDevices(customer, orgUnitId=None, readMask=None, x__xgafv=None)
Counts of devices with a specific hardware specification from the requested hardware type (for example model name, processor type). Further information can be found here https://support.google.com/chrome/a/answer/10564947

Args:
  customer: string, Required. The customer ID or "my_customer". (required)
  orgUnitId: string, Optional. The ID of the organizational unit. If omitted, all data will be returned.
  readMask: string, Required. Mask of the fields that should be populated in the returned report.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a list of devices with a specific type of hardware specification from the requested hardware type.
  "cpuReports": [ # The DeviceHardwareCountReport for device cpu type (for example Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz).
    { # Report for CountChromeDevicesPerHardwareSpecResponse, contains the count of devices with a unique hardware specification.
      "bucket": "A String", # Public name of the hardware specification.
      "count": "A String", # Count of devices with a unique hardware specification.
    },
  ],
  "memoryReports": [ # The DeviceHardwareCountReport for device memory amount in gigabytes (for example 16).
    { # Report for CountChromeDevicesPerHardwareSpecResponse, contains the count of devices with a unique hardware specification.
      "bucket": "A String", # Public name of the hardware specification.
      "count": "A String", # Count of devices with a unique hardware specification.
    },
  ],
  "modelReports": [ # The DeviceHardwareCountReport for device model type (for example Acer C7 Chromebook).
    { # Report for CountChromeDevicesPerHardwareSpecResponse, contains the count of devices with a unique hardware specification.
      "bucket": "A String", # Public name of the hardware specification.
      "count": "A String", # Count of devices with a unique hardware specification.
    },
  ],
  "storageReports": [ # The DeviceHardwareCountReport for device storage amount in gigabytes (for example 128).
    { # Report for CountChromeDevicesPerHardwareSpecResponse, contains the count of devices with a unique hardware specification.
      "bucket": "A String", # Public name of the hardware specification.
      "count": "A String", # Count of devices with a unique hardware specification.
    },
  ],
}
countChromeVersions(customer, filter=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)
Generate report of installed Chrome versions.

Args:
  customer: string, Required. Customer id or "my_customer" to use the customer associated to the account making the request. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * last_active_date
  orgUnitId: string, The ID of the organizational unit.
  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
  pageToken: string, Token to specify the page of the request to be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing requested browser versions details and counts.
  "browserVersions": [ # List of all browser versions and their install counts.
    { # Describes a browser version and its install count.
      "channel": "A String", # Output only. The release channel of the installed browser.
      "count": "A String", # Output only. Count grouped by device_system and major version
      "deviceOsVersion": "A String", # Output only. Version of the system-specified operating system.
      "system": "A String", # Output only. The device operating system.
      "version": "A String", # Output only. The full version of the installed browser.
    },
  ],
  "nextPageToken": "A String", # Token to specify the next page of the request.
  "totalSize": 42, # Total number browser versions matching request.
}
countChromeVersions_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
countInstalledApps(customer, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)
Generate report of app installations.

Args:
  customer: string, Required. Customer id or "my_customer" to use the customer associated to the account making the request. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * latest_profile_active_date * permission_name * app_id * manifest_versions * risk_score
  orderBy: string, Field used to order results. Supported order by fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * app_id * manifest_versions * risk_score
  orgUnitId: string, The ID of the organizational unit.
  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
  pageToken: string, Token to specify the page of the request to be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing details of queried installed apps.
  "installedApps": [ # List of installed apps matching request.
    { # Describes an installed app.
      "appId": "A String", # Output only. Unique identifier of the app. For Chrome apps and extensions, the 32-character id (e.g. ehoadneljpdggcbbknedodolkkjodefl). For Android apps, the package name (e.g. com.evernote).
      "appInstallType": "A String", # Output only. How the app was installed.
      "appSource": "A String", # Output only. Source of the installed app.
      "appType": "A String", # Output only. Type of the app.
      "browserDeviceCount": "A String", # Output only. Count of browser devices with this app installed.
      "description": "A String", # Output only. Description of the installed app.
      "disabled": True or False, # Output only. Whether the app is disabled.
      "displayName": "A String", # Output only. Name of the installed app.
      "homepageUri": "A String", # Output only. Homepage uri of the installed app.
      "osUserCount": "A String", # Output only. Count of ChromeOS users with this app installed.
      "permissions": [ # Output only. Permissions of the installed app.
        "A String",
      ],
      "riskAssessment": { # Risk assessment data about an extension/app. # Output only. If available, the risk assessment data about this extension.
        "entries": [ # Individual risk assessments.
          { # One risk assessment entry.
            "provider": "A String", # The risk assessment provider from which this entry comes from.
            "riskAssessment": { # Risk assessment for a Chrome extension. # The details of the provider's risk assessment.
              "assessment": "A String", # Risk assessment for the extension. Currently, this is a numerical value, and its interpretation is specific to each risk assessment provider.
              "detailsUrl": "A String", # A URL that a user can navigate to for more information about the risk assessment.
              "version": "A String", # The version of the extension that this assessment applies to.
            },
            "riskLevel": "A String", # The bucketed risk level for the risk assessment.
          },
        ],
        "overallRiskLevel": "A String", # Overall assessed risk level across all entries. This will be the highest risk level from all entries.
      },
    },
  ],
  "nextPageToken": "A String", # Token to specify the next page of the request.
  "totalSize": 42, # Total number of installed apps matching request.
}
countInstalledApps_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
countPrintJobsByPrinter(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)
Get a summary of printing done by each printer.

Args:
  customer: string, Required. Customer ID prefixed with "customers/" or "customers/my_customer" to use the customer associated to the account making the request. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported in this filter. Supported filter fields: * complete_time
  orderBy: string, Field used to order results. If omitted, results will be ordered in ascending order of the 'printer' field. Supported order_by fields: * printer * job_count * device_count * user_count
  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
  pageToken: string, Token to specify the page of the response to be returned.
  printerOrgUnitId: string, The ID of the organizational unit for printers. If specified, only data for printers from the specified organizational unit will be returned. If omitted, data for printers from all organizational units will be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a summary printing report for each printer from the specified organizational unit for the requested time interval.
  "nextPageToken": "A String", # Pagination token for requesting the next page.
  "printerReports": [ # List of PrinterReports matching request.
    { # Report for CountPrintJobsByPrinter, contains statistics on printer usage. Contains the total number of print jobs initiated with this printer, the number of users and the number of devices that have initiated at least one print job with this printer.
      "deviceCount": "A String", # Number of chrome devices that have been used to send print jobs to the specified printer.
      "jobCount": "A String", # Number of print jobs sent to the printer.
      "printer": "A String", # Printer name.
      "printerId": "A String", # Printer API ID.
      "printerModel": "A String", # Printer model.
      "userCount": "A String", # Number of users that have sent print jobs to the printer.
    },
  ],
  "totalSize": "A String", # Total number of printers matching request.
}
countPrintJobsByPrinter_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
countPrintJobsByUser(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)
Get a summary of printing done by each user.

Args:
  customer: string, Required. Customer ID prefixed with "customers/" or "customers/my_customer" to use the customer associated to the account making the request. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported in this filter. Supported filter fields: * complete_time
  orderBy: string, Field used to order results. If omitted, results will be ordered in ascending order of the 'user_email' field. Supported order_by fields: * user_email * job_count * printer_count * device_count
  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
  pageToken: string, Token to specify the page of the response to be returned.
  printerOrgUnitId: string, The ID of the organizational unit for printers. If specified, only print jobs initiated with printers from the specified organizational unit will be counted. If omitted, all print jobs will be counted.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a summary printing report for each user that has initiated a print job with a printer from the specified organizational unit during the requested time interval.
  "nextPageToken": "A String", # Pagination token for requesting the next page.
  "totalSize": "A String", # Total number of users matching request.
  "userPrintReports": [ # List of UserPrintReports matching request.
    { # Report for CountPrintJobsByUser, contains printing statistics for a user. Contains the number of printers, the number of devices used to initiate print jobs, and the number of print jobs initiated.
      "deviceCount": "A String", # Number of chrome devices that have been used to initiate print jobs by the user.
      "jobCount": "A String", # Number of print jobs initiated by the user.
      "printerCount": "A String", # Number of printers used by the user.
      "userEmail": "A String", # The primary e-mail address of the user.
      "userId": "A String", # The unique Directory API ID of the user.
    },
  ],
}
countPrintJobsByUser_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
enumeratePrintJobs(customer, filter=None, orderBy=None, pageSize=None, pageToken=None, printerOrgUnitId=None, x__xgafv=None)
Get a list of print jobs.

Args:
  customer: string, Required. Customer ID prefixed with "customers/" or "customers/my_customer" to use the customer associated to the account making the request. (required)
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Note: Only >= and <= comparators are supported for `complete_time`. Note: Only = comparator supported for `user_id` and `printer_id`. Supported filter fields: * complete_time * printer_id * user_id
  orderBy: string, Field used to order results. If not specified, results will be ordered in descending order of the `complete_time` field. Supported order by fields: * title * state * create_time * complete_time * document_page_count * color_mode * duplex_mode * printer * user_email
  pageSize: integer, The number of print jobs in the page from 0 to 100 inclusive, if page_size is not specified or zero, the size will be 50.
  pageToken: string, A page token received from a previous `EnumeratePrintJobs` call. Provide this to retrieve the subsequent page. If omitted, the first page of results will be returned. When paginating, all other parameters provided to `EnumeratePrintJobs` must match the call that provided the page token.
  printerOrgUnitId: string, The ID of the organizational unit for printers. If specified, only print jobs submitted to printers from the specified organizational unit will be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a list of print jobs.
  "nextPageToken": "A String", # A token, which can be used in a subsequent request to retrieve the next page. If this field is omitted, there are no subsequent pages.
  "printJobs": [ # List of requested print jobs.
    { # Represents a request to print a document that has been submitted to a printer.
      "colorMode": "A String", # Color mode.
      "completeTime": "A String", # Print job completion timestamp.
      "copyCount": 42, # Number of copies.
      "createTime": "A String", # Print job creation timestamp.
      "documentPageCount": 42, # Number of pages in the document.
      "duplexMode": "A String", # Duplex mode.
      "id": "A String", # Unique ID of the print job.
      "printer": "A String", # Name of the printer used for printing.
      "printerId": "A String", # API ID of the printer used for printing.
      "state": "A String", # The final state of the job.
      "title": "A String", # The title of the document.
      "userEmail": "A String", # The primary e-mail address of the user who submitted the print job.
      "userId": "A String", # The unique Directory API ID of the user who submitted the print job.
    },
  ],
  "totalSize": "A String", # Total number of print jobs matching request.
}
enumeratePrintJobs_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
findInstalledAppDevices(customer, appId=None, appType=None, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)
Generate report of managed Chrome browser devices that have a specified app installed.

Args:
  customer: string, Required. Customer id or "my_customer" to use the customer associated to the account making the request. (required)
  appId: string, Unique identifier of the app. For Chrome apps and extensions, the 32-character id (e.g. ehoadneljpdggcbbknedodolkkjodefl). For Android apps, the package name (e.g. com.evernote).
  appType: string, Type of the app.
    Allowed values
      APP_TYPE_UNSPECIFIED - App type not specified.
      EXTENSION - Chrome extension.
      APP - Chrome app.
      THEME - Chrome theme.
      HOSTED_APP - Chrome hosted app.
      ANDROID_APP - ARC++ app.
  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * last_active_date
  orderBy: string, Field used to order results. Supported order by fields: * machine * device_id
  orgUnitId: string, The ID of the organizational unit.
  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
  pageToken: string, Token to specify the page of the request to be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response containing a list of devices with queried app installed.
  "devices": [ # A list of devices which have the app installed. Sorted in ascending alphabetical order on the Device.machine field.
    { # Describes a device reporting Chrome browser information.
      "deviceId": "A String", # Output only. The ID of the device that reported this Chrome browser information.
      "machine": "A String", # Output only. The name of the machine within its local network.
    },
  ],
  "nextPageToken": "A String", # Token to specify the next page of the request.
  "totalSize": 42, # Total number of devices matching request.
}
findInstalledAppDevices_next()
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 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.