Blueprint function now showing in blueprint

I’ve seen that this has been asked about quite a few times, but none of the solutions have worked for me. I’m new to writing Unreal Engine C++ and I’m writing a function library to access Usd attribute values from a stage and a prim, which could be useful within a blueprint too. This is to be part of a plugin with more functionality with Usd. This is my class:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "USDAttributeFunctionLibrary.generated.h"

namespace UE
{
	class FUsdPrim;
	class FSdfPath;
}

class AUsdStageActor;

/**
 * Library of functions to access USD Attributes of different types
 */
UCLASS()
class USDCAMERAFRAMERANGES_API UUSDAttributeFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
	
public:
	UFUNCTION(BlueprintCallable)
	static float GetUsdFloatAttribute(AUsdStageActor* StageActor, FString PrimName, FString AttrName);

private:
	static void GetSdfPathWithName(UE::FUsdPrim& CurrentPrim, FString TargetName, UE::FSdfPath& OutPath);

	
};

I can’t understand why it isn’t showing up? I’ve tried deleting the intermediate/binary folders for the plugin and project, I’ve rebuilt the project and generated new project code. When I’ve tried tutorials showing how to make blueprint functions they work with the same approach. Is it something to do with it being in a plugin?