def __init__(self, **kwargs):

        self.id = kwargs.get("id")
        self.server = kwargs.get("server")
        self.verify = kwargs.get("verify", True)
        self.api_key = kwargs.get("key", "")
        self.meta_data = kwargs.get("meta_data")
        self._user_agent = kwargs.get("user_agent")
        self._fields = kwargs.get("fields")
        self.get_params = {}

        if self.meta_data is None and self.id is None:
            raise CousteauGenericError(
                "Id or meta_data should be passed in order to create object."
            )

        if self._fields:
            self.update_get_params()

        if self.meta_data is None:
            if not self._fetch_meta_data():
                raise APIResponseError(self.meta_data)

        self._populate_data()