code: func (i *Instances) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error) {
  	instanceID, err := instanceIDFromProviderID(providerID)
  	if err != nil {
  		return false, err
  	}
  
  	server, err := servers.Get(i.compute, instanceID).Extract()
  	if err != nil {
  		return false, err
  	}
  
  	// SHUTOFF is the only state where we can detach volumes immediately
  	if server.Status == instanceShutoff {
  		return true, nil
  	}
  	return false, nil
  }
docs: // InstanceShutdownByProviderID returns true if the instances is in safe state to detach volumes