FGameplayAttributeData of GameAbilities System

Question Around:GameplayAbilitySystem->UAttributeSet->FGameplayAttributeData

Scene: When using GameAbilitySystem,I define some GameplayAttributes about my Character. Certainly,I want to define some self-defined-struct-type.However,I find that FGameplayAttributeData is just float type.

for example:
//I define a Struct for group of characters in moba game
enum class CampOfCharacter:uint8 { Red, Blue }

//------In SubClass Of UAttributeSet----
class UMyAttributeSet:public UAttributeSet
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadOnly,ReplicatedUsing = OnRep_CampChanged)
CampOfCharacter Camp;
ATTRIBUTE_ACCESSORS(UMyAttributeSet, Camp)
protected:
void OnRep_CampChanged(){}
};

Mentioned above is what I want to do, but the question is just FGameplayAttributeData can supported by FGameplayAttribute.I think I can’t use a float to represent character’s camp. And also,I don’t know what I write above can whether supported Network by GameAbilitySystem.
So,have any other way can I use different type from FGameplayAttributeData to define my own Attribute type?