Converting from SteamVR/OVR to UnityXR Input- Pull Action for XR Rig?

I’ve been following a Bow and Arrow tutorial for OVR and Steam VR and now I’m looking at UnityXR.

The SteamVR code is

using UnityEngine;
using Valve.VR;

public class SteamInput : MonoBehaviour
{
    
    public Bow m_Bow = null;
    public SteamVR_Behaviour_Pose m_Pose = null;
    public SteamVR_Action_Boolean m_PullAction = null;

    private void Update()
    {
        if (m_PullAction.GetStateDown(m_Pose.inputSource))
            m_Bow.Pull(m_Pose.gameObject.transform);

        if (m_PullAction.GetStateUp(m_Pose.inputSource))
            m_Bow.Release();
    }
    
}

The optional OVR code is:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// using OVR;

public class OculusInput : MonoBehaviour
{
    /*
    public Bow m_Bow = null;
    public GameObject m_OppositeController = null;
    public OVRInput.Controller m_Controller = OVRInput.Controller.None;

    private void Update()
    {
        if(OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, m_Controller))
            m_Bow.Pull(m_OppositeController.transform);

        if (OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, m_Controller))
            m_Bow.Release();
    }
    */
}

Attached to my left controller is this SteamVR script
151549-leftcontroller.png

In my new XR Rig I have this Tracked Pose Driver attached to my Left and Right Hand.

151552-tracked-pose-driver.png

Can anyone tell me what the equivalent code/setup would be for an XR Rig with the new XR Input manager? Is there one, or do I have to use either SteamVR or OVR for these kind of actions? The XR Interactions examples I’ve found just seem to involve picking object up with basic button press functions. Fine for weapons like guns, but I’m at a loss as to the equivalent of pulling back a bow string etc…

In the end I decided to stop clouding things by worrying about the SteamVR_Behaviour_Pose and focused on converting the OVR equivalend code which was easier to comprehend.

https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Actions.html

private void OnEnable()
    {
        //RightTriggerStarted
        _promootheusinputactions.PromootheusPlayer.RightTrigger.started += RightTriggerStartedFunction;
        _promootheusinputactions.PromootheusPlayer.RightTrigger.Enable();
        //RightTriggerperformed
        _promootheusinputactions.PromootheusPlayer.RightTrigger.canceled += RightTriggerCanceledFunction;
        _promootheusinputactions.PromootheusPlayer.RightTrigger.Enable();

    }

private void OnDisable()
    {

        //RightTrigger
        _promootheusinputactions.PromootheusPlayer.RightTrigger.performed -= RightTriggerStartedFunction;
        _promootheusinputactions.PromootheusPlayer.RightTrigger.Disable();
        //RightTrigger
        _promootheusinputactions.PromootheusPlayer.RightTrigger.canceled -= RightTriggerCanceledFunction;
        _promootheusinputactions.PromootheusPlayer.RightTrigger.Disable();

}

    private void RightTriggerStartedFunction(InputAction.CallbackContext context)
    {
        Debug.Log("RightTriggerStarted");
        m_Bow.Pull(m_OppositeController.transform);
    }

    private void RightTriggerCanceledFunction(InputAction.CallbackContext context)
    {
        Debug.Log("RightTriggerReleased");
        m_Bow.Release();
    }