#!/usr/bin/bash

# Configuration variables
COMPARTMENT_ID="ocid1.tenancy.oc1..aaaaaaaa27auguaifpfrtrvkmkzx7cozg2xuyu5kdjdrtbkh7ieaysagyjtq"
SUBNET_ID="ocid1.subnet.oc1.iad.aaaaaaaadqq6m6vhaser4qwbc3nqux6kqwwpkcsxoxq3lnwkmh7gwsjs4e7a"
IMAGE_ID="ocid1.image.oc1.iad.aaaaaaaacshgkbpilyspqgguvldkp7rw7f4z5zcbbefwuntlgtrgkgbg4wlq"
SSH_KEY_FILE="$HOME/.ssh/id_rsa.pub"
DISPLAY_NAME="ampere-free-vps"

#AVAILABILITY_DOMAIN=$(oci iam availability-domain list -c "$COMPARTMENT_ID" --query "data[0].name" --raw-output)

  #  --availability-domain "$AVAILABILITY_DOMAIN" \
  #    --shape-config '{"ocpus": 1, "memoryInGBs": 6}' \

while true; do
  oci -i compute instance launch \ 
    --compartment-id "$COMPARTMENT_ID" \
    --availability-domain "US-ASHBURN-AD-1" \
    --shape "VM.Standard.A1.Flex" \
    --subnet-id "$SUBNET_ID" \ 
    --image-id "$IMAGE_ID" \ 
    --display-name "$DISPLAY_NAME" \
    --ssh-authorized-keys-file "$SSH_KEY_FILE" \
    --assign-public-ip true \
    --wait-for-state RUNNING

  if [ $? -eq 0 ]; then
    echo "Instance successfully provisioned!"
    break
  fi

  echo "Out of capacity or rate limited. Retrying in 5 minutes..."
  sleep 300
done
