In the job options you can have a droplist to do a plan apply or destroy. Then build logic into either a Makefile, bash script in a repo to decide what switch to pass to terraform to run.
I have found an easier way of doing this is dropping into a docker container that contains terraform (and other build tools if needed), taking the inputs from the job, executing terraform and taking the output from the container into a variable. You can then decide to alert the devs or ops teams whether to deploy the build by rerunning it with the apply option.
This way you can keep the build tools such as terraform outside of Rundeck and update as/when required, without changing the job on Rundeck and messing with updating binaries locally on Rundeck, this way you could have various containers all with different terraform versions if required.