def get_states(self, action_name, config_name, instances=None, map_name=None, **kwargs):
        """
        Returns a generator of states in relation to the indicated action.

        :param action_name: Action name.
        :type action_name: unicode | str
        :param config_name: Name(s) of container configuration(s) or MapConfigId tuple(s).
        :type config_name: unicode | str | collections.Iterable[unicode | str] | dockermap.map.input.InputConfigId | collections.Iterable[dockermap.map.input.InputConfigId]
        :param instances: Optional instance names, where applicable but not included in ``config_name``.
        :type instances: unicode | str | collections.Iterable[unicode | str]
        :param map_name: Optional map name, where not inlcuded in ``config_name``.
        :param kwargs: Additional kwargs for state generation, action generation, runner, or the client action.
        :return: Resulting states of the configurations.
        :rtype: collections.Iterable[dockermap.map.state.ConfigState]
        """
        policy = self.get_policy()
        _set_forced_update_ids(kwargs, policy.container_maps, map_name or self._default_map, instances)
        state_generator = self.get_state_generator(action_name, policy, kwargs)
        log.debug("Remaining kwargs passed to client actions: %s", kwargs)
        config_ids = get_map_config_ids(config_name, policy.container_maps, map_name or self._default_map,
                                        instances)
        log.debug("Generating states for configurations: %s", config_ids)
        return state_generator.get_states(config_ids)
Returns a generator of states in relation to the indicated action.

        :param action_name: Action name.
        :type action_name: unicode | str
        :param config_name: Name(s) of container configuration(s) or MapConfigId tuple(s).
        :type config_name: unicode | str | collections.Iterable[unicode | str] | dockermap.map.input.InputConfigId | collections.Iterable[dockermap.map.input.InputConfigId]
        :param instances: Optional instance names, where applicable but not included in ``config_name``.
        :type instances: unicode | str | collections.Iterable[unicode | str]
        :param map_name: Optional map name, where not inlcuded in ``config_name``.
        :param kwargs: Additional kwargs for state generation, action generation, runner, or the client action.
        :return: Resulting states of the configurations.
        :rtype: collections.Iterable[dockermap.map.state.ConfigState]