resource "test_instance" "foo" { connection { type = "ssh" host = self.private_ip } provisioner "test" { commands = ["a", "b", "c"] when = create on_failure = fail connection { type = "winrm" host = self.public_ip } } }