Below you find a couple of oci cli commands and examples. Query syntax http://jmespath.org/examples.html#filters-and-multiselect-lists
list all activ compartments
oci iam compartment list --all --output table --compartment-id-in-subtree true \
--query "data [?\"lifecycle-state\" =='ACTIVE'].{Name:name,OCID:id}"
list all inactive compartments
oci iam compartment list --all --output table --compartment-id-in-subtree true \
--query "data [?\"lifecycle-state\" !='ACTIVE'].{Name:name,OCID:id}"
image list
oci compute image list --output table --query "data[*]".{"ocid:id,name:\"display-name\""} --compartment-id $ocid
Get OCID by Name Contains
oci compute instance list --query "data[?contains(\"display-name\",'kafka')]".{"ocid:id"} --compartment-id $ocid
Get Public IP By Instance ID
oci compute instance list-vnics --query "data[*]"."{\"public-ip\":\"public-ip\"}" --instance-id $ocid
List running resources across tenant
oci search resource free-text-search --text RUNNING --query "data[].{Name:\"display-name\",state:\"lifecycle-state\",id:id}"
List Public IP for all Jumphosts
oci compute instance list-vnics --all --compartment-id $COMPARTMENT_OCID --output table --query "data[?contains(\"hostname-label\",'jump')].{\"Name\":\"hostname-label\",\"IP\":\"public-ip\"}"
List Compute instance in compartment (name, state)
oci compute instance list --compartment-id $COMPARTMENT_OCID --output table --query "data[].{\"Name\":\"display-name\",\"State\":\"lifecycle-state\"}"
Get Compartment OCID
export TRAINING_NAME="O-AI"
oci iam compartment list \
--compartment-id-in-subtree true --all \
--raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]"
List Compute instance in compartment (name, state)
export TRAINING_NAME="O-AI"
oci compute instance list --compartment-id $(oci iam compartment list \
--compartment-id-in-subtree true --all --raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]") \
--output table --query "data[].{\"Name\":\"display-name\",\"State\":\"lifecycle-state\"}"
Get OCI Stacks in Compartment
export TRAINING_NAME="O-SEC-EUS"
oci resource-manager stack list --compartment-id $(oci iam compartment list \
--compartment-id-in-subtree true --all \
--raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]")
export TRAINING_NAME="O-SEC-EUS"
oci resource-manager stack list --compartment-id $(oci iam compartment list \
--compartment-id-in-subtree true --all \
--raw-output --query "data [?name == '${TRAINING_NAME}'].id|[0]") --query-text "query all resources where ( \
freeformTags.key = ZipOrigin1'"
Initiate OCI Stack destroy job
oci resource-manager job create-destroy-job --execution-plan-strategy AUTO_APPROVED --stack-id $stack_ocid
List OCI Stack Job Information
oci resource-manager job get --job-id ocid1.ormjob.oc1.eu-zurich-1.aaaaaaaaqyoysezik4lmvlwfzkanzgq6zyvs4nyb2t3pbfjoguz4exf3xkoq
Delete OCI Stack
oci resource-manager stack delete --stack-id $stack_ocid
Search for OCI Stacks with DeleteDay Tag
oci search resource structured-search \
--query-text "query OrmStack resources where (definedTags.namespace = 'Schedule' && definedTags.key = 'DeleteDay')" \
--query "data.items[].{Name:\"display-name\",OCID:identifier,DeleteDay:\"defined-tags\".Schedule.DeleteDay}"
Thank you! Just getting started with the cli. This gives a clue as to where things can go.