def add(
        self, property: Union[Field, VectorField, MetadataType, QuestionType], override: bool = True
    ) -> Union[Field, VectorField, MetadataType, QuestionType]:
        """
        Add a property to the settings

        Args:
            property: The property to add
            override: If True, override the existing property with the same name. Otherwise, raise an error.  Defaults to True.

        Returns:
            The added property

        """
        # review all settings properties and remove any existing property with the same name
        for attributes in [self.fields, self.questions, self.vectors, self.metadata]:
            for prop in attributes:
                if prop.name == property.name:
                    message = f"Property with name {property.name!r} already exists in settings as {prop.__class__.__name__!r}"
                    if override:
                        warnings.warn(message + ". Overriding the existing property.")
                        attributes.remove(prop)
                    else:
                        raise SettingsError(message)

        if isinstance(property, FieldBase):
            self.fields.add(property)
        elif isinstance(property, QuestionBase):
            self.questions.add(property)
        elif isinstance(property, VectorField):
            self.vectors.add(property)
        elif isinstance(property, MetadataPropertyBase):
            self.metadata.add(property)
        else:
            raise ValueError(f"Unsupported property type: {type(property).__name__}")
        return property

        Add a property to the settings

        Args:
            property: The property to add
            override: If True, override the existing property with the same name. Otherwise, raise an error.  Defaults to True.

        Returns:
            The added property

        
argilla/src/argilla/settings/_resource.py