docstr: Add a Dataset
docstr_tok: ["Add","a","Dataset"]
code: def add(
      self, context: AuthedServiceContext, dataset: CreateDataset
  ) -> Union[SyftSuccess, SyftError]:
      """Add a Dataset"""
      dataset = dataset.to(Dataset, context=context)
      result = self.stash.set(
          context.credentials,
          dataset,
          add_permissions=[
              ActionObjectPermission(
                  uid=dataset.id, permission=ActionPermission.ALL_READ
              ),
          ],
      )
      if result.is_err():
          return SyftError(message=str(result.err()))
      return SyftSuccess(
          message=f"Dataset uploaded to '{context.node.name}'. "
          f"To see the datasets uploaded by a client on this node, use command `[your_client].datasets`"
      )
  
imports: from collections.abc import Collection
  from typing import List
  from typing import Optional
  from typing import Union
  from ...serde.serializable import serializable
  from ...store.document_store import DocumentStore
  from ...types.dicttuple import DictTuple
  from ...types.uid import UID
  from ...util.telemetry import instrument
  from ..action.action_permissions import ActionObjectPermission
  from ..action.action_permissions import ActionPermission
  from ..context import AuthedServiceContext
  from ..response import SyftError
  from ..response import SyftSuccess
  from ..service import AbstractService
  from ..service import SERVICE_TO_TYPES
  from ..service import TYPE_TO_SERVICE
  from ..service import service_method
  from ..user.user_roles import DATA_OWNER_ROLE_LEVEL
  from ..user.user_roles import DATA_SCIENTIST_ROLE_LEVEL
  from ..user.user_roles import GUEST_ROLE_LEVEL
  from ..warnings import CRUDReminder
  from ..warnings import HighSideCRUDWarning
  from .dataset import Asset
  from .dataset import CreateDataset
  from .dataset import Dataset
  from .dataset import DatasetPageView
  from .dataset_stash import DatasetStash
label_desc: Use image node_id 2 for calling the DatasetService obj's underlying member method code with example usage: obj.add(context, dataset) and returns: SyftSuccess, SyftError