code: @Override
    public void snapshot(String snapshotName, TableName tableName)
        throws IOException, SnapshotCreationException, IllegalArgumentException {
  
      Operation operation = snapshotTable(snapshotName, tableName);
      try {
        connection.getSession().getInstanceAdminClient().waitForOperation(operation);
      } catch (TimeoutException e) {
        throw new IOException("Timed out waiting for snapshot creation to finish", e);
      }
    }
docs: Creates a snapshot from an existing table.  NOTE: Cloud Bigtable has a cleanup policy
  
  @param snapshotName a {@link String} object.
  @param tableName a {@link TableName} object.
  @throws IOException if any.