def commercial_invoice(self, action, data_center, environment, transport_service, tagging_scheme=None):
        """
        :param action:
        :param data_center:
        :param environment:
        :param transport_service:
        :param tagging_scheme:
        :return:
        """
        if action not in ACTIONS_SCHEME:
            raise LookupError(logger.error("{0} isn't a support action.".format(action)))

        config_value = self._config.get(environment, 'environments')
        if config_value is None:
            raise LookupError(logger.error("Was unable to find environment: {0} in the config.".format(environment)))
        else:
            environment = config_value

        config_value = self._config.get(data_center, 'environments', environment.name)
        if config_value is None:
            raise LookupError(
                logger.error("Was unable to find data center: {0} in environment: {1}".format(data_center, environment.name))
            )
        else:
            data_center = config_value

        config_value = self._config.get(transport_service, 'environments', environment.name, data_center.name, action)
        if config_value is None:
                raise LookupError(
                    logger.error('Was unable to find the service: {0} attempting to be transported.'.format(transport_service))
                )
        else:
            transport_service = config_value

        # if we're exporting we need to use other services deploy definitions to avoid issues
        if action == 'export':
            services = self.__get_services('deploy', data_center, environment)
            services[transport_service.name] = transport_service
        else:
            services = self.__get_services(action, data_center, environment)

        return CommercialInvoice(
            team=self.team,
            project=self.project,
            services=services,
            hosts=self._config.get('hosts', 'environments', environment.name, data_center.name, action),
            transport_service=transport_service.alias,
            transport_method=action,
            data_center=data_center.alias,
            environment=environment.alias,
            registries=self._config.get('registries'),
            tags=self._config.get('tags', 'environments', environment.name, data_center.name, action),
            tagging_scheme=tagging_scheme
        )