Instance state machine
graph TB
    start((Start))
    start --> pending
    pending[PENDING]
    provisioning[PROVISIONING]
    provision_failed[PROVISION_FAILED]
    available[AVAILABLE]
    updating[UPDATING]
    update_failed[UPDATE_FAILED]
    deleting[DELETING]
    delete_failed[DELETE_FAILED]
    deleted[DELETED]
    archived[ARCHIVED]
    pending --> provisioning
    provision_ok{provision ok?}
    style provision_ok fill:#80CBC4
    provisioning --> provision_ok
    provision_ok --> |No| provision_failed
    provision_ok --> |Yes| available
    provision_failed --> |retry| provisioning
    available --> |update| updating
    update_ok{update ok?}
    style update_ok fill:#80CBC4
    updating --> update_ok
    update_ok --> |No| update_failed
    update_ok --> |Yes| available
    available --> |Delete| deleting
    deletion_ok{deletion ok?}
    style deletion_ok fill:#80CBC4
    deleting --> deletion_ok
    deletion_ok --> |No| delete_failed
    deletion_ok --> |Yes| deleted
    deleted --> |archive| archived
    delete_failed --> |Retry| deleting