docs: 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
          )