docs: def build_access_service(did, price, consume_endpoint, service_endpoint, timeout, template_id):
          """
          Build the access service.
  
          :param did: DID, str
          :param price: Asset price, int
          :param consume_endpoint: url of the service provider, str
          :param service_endpoint: identifier of the service inside the asset DDO, str
          :param timeout: amount of time in seconds before the agreement expires, int
          :param template_id: id of the template use to create the service, str
          :return: ServiceAgreement
          """
          # TODO fill all the possible mappings
          param_map = {
              '_documentId': did_to_id(did),
              '_amount': price,
              '_rewardAddress': Keeper.get_instance().escrow_reward_condition.address,
          }
          sla_template_path = get_sla_template_path()
          sla_template = ServiceAgreementTemplate.from_json_file(sla_template_path)
          sla_template.template_id = template_id
          conditions = sla_template.conditions[:]
          for cond in conditions:
              for param in cond.parameters:
                  param.value = param_map.get(param.name, '')
  
              if cond.timeout > 0:
                  cond.timeout = timeout
  
          sla_template.set_conditions(conditions)
          sa = ServiceAgreement(
              1,
              sla_template,
              consume_endpoint,
              service_endpoint,
              ServiceTypes.ASSET_ACCESS
          )
          sa.set_did(did)
          return sa