code: public void getRDSOperationComplete(ProviderContext ctx, String operation) throws CloudException, InternalException {
          SQLAdmin sqlAdmin = provider.getGoogleSQLAdmin();
  
          long timeout = System.currentTimeMillis() + (CalendarWrapper.MINUTE * 20L);
          while(timeout > System.currentTimeMillis()) {
              com.google.api.services.sqladmin.model.Operation instanceOperation = null;
              try {
                  instanceOperation = sqlAdmin.operations().get(ctx.getAccountNumber(), operation).execute();
              } catch ( IOException e ) {
                  logger.warn("getRDSOperationComplete Ignoring " + e.getMessage());
              }
  
              if (instanceOperation.getError() != null) {
                  for (OperationError error : instanceOperation.getError().getErrors()) {
                      throw new CloudException("An error occurred: " + error.getCode() + " : " + error.getKind());
                  }
              } else if (instanceOperation.getStatus().equals("DONE")) {
                  return;
              }
  
              try {
                  Thread.sleep(1000L);
              } catch (InterruptedException ignore) {}
          }
          throw new CloudException(CloudErrorType.COMMUNICATION, 408, "", "System timed out waiting for Operation to complete");
      }
docs: /*
  RDS gets its blocking method!