code: def as_check_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.android_cert_fingerprint:
              labels[_KNOWN_LABELS.SCC_ANDROID_CERT_FINGERPRINT.label_name] = self.android_cert_fingerprint
  
          if self.android_package_name:
              labels[_KNOWN_LABELS.SCC_ANDROID_PACKAGE_NAME.label_name] = self.android_package_name
  
          if self.client_ip:
              labels[_KNOWN_LABELS.SCC_CALLER_IP.label_name] = self.client_ip
  
          if self.ios_bundle_id:
              labels[_KNOWN_LABELS.SCC_IOS_BUNDLE_ID.label_name] = self.ios_bundle_id
  
          if self.referer:
              labels[_KNOWN_LABELS.SCC_REFERER.label_name] = self.referer
  
          # Forcibly add system label reporting here, as the base service
          # config does not specify it as a label.
          labels[_KNOWN_LABELS.SCC_SERVICE_AGENT.label_name] = SERVICE_AGENT
          labels[_KNOWN_LABELS.SCC_USER_AGENT.label_name] = USER_AGENT
  
          op.labels = encoding.PyValueToMessage(
              sc_messages.Operation.LabelsValue, labels)
          check_request = sc_messages.CheckRequest(operation=op)
          return sc_messages.ServicecontrolServicesCheckRequest(
              serviceName=self.service_name,
              checkRequest=check_request)
docs: Makes a `ServicecontrolServicesCheckRequest` from this instance
  
          Returns:
            a ``ServicecontrolServicesCheckRequest``
  
          Raises:
            ValueError: if the fields in this instance are insufficient to
              to create a valid ``ServicecontrolServicesCheckRequest``