class_docstr: Service schema handler 
class_docstr_tok: ["Service","schema","handler"]
code: def parse(self, service_config):
      self._default = service_config.get(
          "_default", ConfigTree()
      ).as_plain_ordered_dict()
  
      self._doc = "{} service".format(self.name)
      description = service_config.get("_description", "")
      if description:
          self._doc += "\n\n{}".format(description)
      self._definitions = service_config.get(
          "_definitions", ConfigTree()
      ).as_plain_ordered_dict()
      self._definitions_refs = {
          k: self._get_schema_references(v)
          for k, v in self._definitions.items()
      }
      all_refs = set(itertools.chain(*self.definitions_refs.values()))
      if not all_refs.issubset(self.definitions):
          raise ValueError(
              "Unresolved references (%s) in %s/definitions"
              % (
                  ", ".join(all_refs.difference(self.definitions)),
                  self.name,
              )
          )
  
      actions = {
          k: v.as_plain_ordered_dict()
          for k, v in service_config.items()
          if not k.startswith("_")
      }
      self._actions = {
          action_name: action
          for action_name, action in (
              (
                  action_name,
                  self._parse_action_versions(
                      action_name, action_versions
                  ),
              )
              for action_name, action_versions in actions.items()
          )
          if action
      }
  
imports: import itertools
  import re
  import attr
  import six
  from ...utilities.pyhocon import ConfigTree
  from .action import Action
label_desc: Use image node_id 9 for calling the Service obj's underlying member method code with example usage: obj.parse(service_config) without return types