docs: def get_utilization(self, id_or_uri, fields=None, filter=None, refresh=False, view=None):
          """
          Retrieves historical utilization data for the specified resource, metrics, and time span.
  
          Args:
              id_or_uri:
                  Resource identification
              fields:
                  Name of the supported metric(s) to be retrieved in the format METRIC[,METRIC]...
                  If unspecified, all metrics supported are returned.
  
              filter (list or str):
                  Filters should be in the format FILTER_NAME=VALUE[,FILTER_NAME=VALUE]...
                  E.g.: 'startDate=2016-05-30T11:20:44.541Z,endDate=2016-05-30T19:20:44.541Z'
  
                  startDate
                      Start date of requested starting time range in ISO 8601 format. If omitted, the startDate is
                      determined by the endDate minus 24 hours.
                  endDate
                      End date of requested starting time range in ISO 8601 format. When omitted, the endDate includes
                      the latest data sample available.
  
                  If an excessive number of samples would otherwise be returned, the results will be segmented. The
                  caller is responsible for comparing the returned sliceStartTime with the requested startTime in the
                  response. If the sliceStartTime is greater than the oldestSampleTime and the requested start time,
                  the caller is responsible for repeating the request with endTime set to sliceStartTime to obtain the
                  next segment. This process is repeated until the full data set is retrieved.
  
                  If the resource has no data, the UtilizationData is still returned but will contain no samples and
                  sliceStartTime/sliceEndTime will be equal. oldestSampleTime/newestSampleTime will still be set
                  appropriately (null if no data is available). If the filter does not happen to overlap the data
                  that a resource has, then the metric history service will return null sample values for any
                  missing samples.
  
              refresh:
                  Specifies that if necessary, an additional request will be queued to obtain the most recent
                  utilization data from the iLO. The response will not include any refreshed data. To track the
                  availability of the newly collected data, monitor the TaskResource identified by the refreshTaskUri
                  property in the response. If null, no refresh was queued.
  
              view:
                  Specifies the resolution interval length of the samples to be retrieved. This is reflected in the
                  resolution in the returned response. Utilization data is automatically purged to stay within storage
                  space constraints. Supported views are listed below:
  
                  native
                      Resolution of the samples returned will be one sample for each 5-minute time period. This is the
                      default view and matches the resolution of the data returned by the iLO. Samples at this resolution
                      are retained up to one year.
                  hour
                      Resolution of the samples returned will be one sample for each 60-minute time period. Samples are
                      calculated by averaging the available 5-minute data samples that occurred within the hour, except
                      for PeakPower which is calculated by reporting the peak observed 5-minute sample value data during
                      the hour. Samples at this resolution are retained up to three years.
                  day
                      Resolution of the samples returned will be one sample for each 24-hour time period. One day is a
                      24-hour period that starts at midnight GMT regardless of the time zone in which the appliance or
                      client is located. Samples are calculated by averaging the available 5-minute data samples that
                      occurred during the day, except for PeakPower which is calculated by reporting the peak observed
                      5-minute sample value data during the day. Samples at this resolution are retained up to three
                      years.
  
          Returns:
              dict
          """
  
          if not id_or_uri:
              raise ValueError(RESOURCE_CLIENT_INVALID_ID)
  
          query = ''
  
          if filter:
              query += self.__make_query_filter(filter)
  
          if fields:
              query += "&fields=" + quote(fields)
  
          if refresh:
              query += "&refresh=true"
  
          if view:
              query += "&view=" + quote(view)
  
          if query:
              query = "?" + query[1:]
  
          uri = "{0}/utilization{1}".format(self.build_uri(id_or_uri), query)
  
          return self._connection.get(uri)