docs: def add_resources(self, resources):
          """
          Add faked child resources to this resource, from the provided resource
          definitions.
  
          Duplicate resource names in the same scope are not permitted.
  
          Although this method is typically used to initially load the faked
          HMC with resource state just once, it can be invoked multiple times
          and can also be invoked on faked resources (e.g. on a faked CPC).
  
          Parameters:
  
            resources (dict):
              resource dictionary with definitions of faked child resources to be
              added. For an explanation of how the resource dictionary is set up,
              see the examples below.
  
              For requirements on and auto-generation of certain resource
              properties, see the ``add()`` methods of the various faked resource
              managers (e.g. :meth:`zhmcclient_mock.FakedCpcManager.add`). For
              example, the object-id or element-id properties and the
              corresponding uri properties are always auto-generated.
  
              The resource dictionary specifies a tree of resource managers and
              resources, in an alternating manner. It starts with the resource
              managers of child resources of the target resource, which contains
              a list of those child resources. For an HMC, the CPCs managed by
              the HMC would be its child resources.
  
              Each resource specifies its own properties (``properties`` key)
              and the resource managers for its child resources. For example, the
              CPC resource specifies its adapter child resources using the
              ``adapters`` key. The keys for the child resource managers are the
              attribute names of these resource managers in the parent resource.
              For example, the ``adapters`` key is named after the
              :attr:`zhmcclient.Cpc.adapters` attribute (which has the same name
              as in its corresponding faked CPC resource:
              :attr:`zhmcclient_mock.FakedCpc.adapters`).
  
          Raises:
  
            :exc:`zhmcclient_mock.InputError`: Some issue with the input
              resources.
  
          Examples:
  
            Example for targeting a faked HMC for adding a CPC with one adapter::
  
                resources = {
                    'cpcs': [  # name of manager attribute for this resource
                        {
                            'properties': {
                                'name': 'cpc_1',
                            },
                            'adapters': [  # name of manager attribute for this
                                           # resource
                                {
                                    'properties': {
                                        'object-id': '12',
                                        'name': 'ad_1',
                                    },
                                    'ports': [
                                        {
                                            'properties': {
                                                'name': 'port_1',
                                            }
                                        },
                                    ],
                                },
                            ],
                        },
                    ],
                }
  
            Example for targeting a faked CPC for adding an LPAR and a load
            activation profile::
  
                resources = {
                    'lpars': [  # name of manager attribute for this resource
                        {
                            'properties': {
                                # object-id is not provided -> auto-generated
                                # object-uri is not provided -> auto-generated
                                'name': 'lpar_1',
                            },
                        },
                    ],
                    'load_activation_profiles': [  # name of manager attribute
                        {
                            'properties': {
                                # object-id is not provided -> auto-generated
                                # object-uri is not provided -> auto-generated
                                'name': 'lpar_1',
                            },
                        },
                    ],
                }
  
          """
          for child_attr in resources:
              child_list = resources[child_attr]
              self._process_child_list(self, child_attr, child_list)