docs: private void tearDown() {
      pendingMessages.add("*************************Tear Down*************************");
      ExamplePubsubTopicAndSubscriptionOptions pubsubOptions =
          options.as(ExamplePubsubTopicAndSubscriptionOptions.class);
      if (!pubsubOptions.getPubsubTopic().isEmpty()) {
        try {
          deletePubsubTopic(pubsubOptions.getPubsubTopic());
          pendingMessages.add("The Pub/Sub topic has been deleted: "
              + pubsubOptions.getPubsubTopic());
        } catch (IOException e) {
          pendingMessages.add("Failed to delete the Pub/Sub topic : "
              + pubsubOptions.getPubsubTopic());
        }
        if (!pubsubOptions.getPubsubSubscription().isEmpty()) {
          try {
            deletePubsubSubscription(pubsubOptions.getPubsubSubscription());
            pendingMessages.add("The Pub/Sub subscription has been deleted: "
                + pubsubOptions.getPubsubSubscription());
          } catch (IOException e) {
            pendingMessages.add("Failed to delete the Pub/Sub subscription : "
                + pubsubOptions.getPubsubSubscription());
          }
        }
      }
  
      ExampleBigQueryTableOptions bigQueryTableOptions =
          options.as(ExampleBigQueryTableOptions.class);
      if (bigQueryTableOptions.getBigQueryDataset() != null
          && bigQueryTableOptions.getBigQueryTable() != null
          && bigQueryTableOptions.getBigQuerySchema() != null) {
        pendingMessages.add("The BigQuery table might contain the example's output, "
            + "and it is not deleted automatically: "
            + bigQueryTableOptions.getProject()
            + ":" + bigQueryTableOptions.getBigQueryDataset()
            + "." + bigQueryTableOptions.getBigQueryTable());
        pendingMessages.add("Please go to the Developers Console to delete it manually."
            + " Otherwise, you may be charged for its usage.");
      }
    }