code: def as_allocate_quota_request(self, timer=datetime.utcnow):
          
          if not self.service_name:
              raise ValueError(u'the service name must be set')
          if not self.operation_id:
              raise ValueError(u'the operation id must be set')
          if not self.operation_name:
              raise ValueError(u'the operation name must be set')
          op = super(Info, self).as_operation(timer=timer)
          labels = {}
          if self.client_ip:
              labels[_KNOWN_LABELS.SCC_CALLER_IP.label_name] = self.client_ip
  
          if self.referer:
              labels[_KNOWN_LABELS.SCC_REFERER.label_name] = self.referer
  
          qop = sc_messages.QuotaOperation(
              operationId=op.operationId,
              methodName=op.operationName,
              consumerId=op.consumerId,
              quotaMode=sc_messages.QuotaOperation.QuotaModeValueValuesEnum.BEST_EFFORT,
          )
          qop.labels = encoding.PyValueToMessage(
              sc_messages.QuotaOperation.LabelsValue, labels)
  
          quota_info = self.quota_info if self.quota_info else {}
          qop.quotaMetrics = [
              sc_messages.MetricValueSet(
                  metricName=name, metricValues=[sc_messages.MetricValue(int64Value=cost)])
              for name, cost in quota_info.items()
          ]
  
          allocate_quota_request = sc_messages.AllocateQuotaRequest(allocateOperation=qop)
          if self.config_id:
              allocate_quota_request.serviceConfigId = self.config_id
          return sc_messages.ServicecontrolServicesAllocateQuotaRequest(
              serviceName=self.service_name,
              allocateQuotaRequest=allocate_quota_request)
docs: Makes a `ServicecontrolServicesAllocateQuotaRequest` from this instance
  
          Returns:
            a ``ServicecontrolServicesAllocateQuotaRequest``
  
          Raises:
            ValueError: if the fields in this instance are insufficient to
              to create a valid ``ServicecontrolServicesAllocateQuotaRequest``